AngularFireDatabase 不检索数据

2024-04-24

每当我使用 afDB.list('/path') 方法时,我都会得到以下信息:console.log(this.items); https://i.stack.imgur.com/RtwkN.png

我有这个例子作为我的 firebase 数据库:列表文件 https://i.stack.imgur.com/hONkG.png

令人惊讶的是,编辑数据工作得很好(例如,remove(),push(),...等),但我似乎无法检索它;但是,我可以访问它。我认为这可能是一个规则问题,但是,我的规则很好:firebase 规则 https://i.stack.imgur.com/7sEAP.png

这是我遇到问题的代码部分:

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { AngularFireAuth } from 'angularfire2/auth';
import { FirebaseProvider } from '../../providers/firebase/firebase';
import { AngularFireDatabase } from 'angularfire2/database';
import { Observable } from 'rxjs/Observable';
import * as firebase from 'firebase/app';

//import { ListingDetailsPage } from '../listing-details/listing-details';



@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {

  items: Observable<any[]>;

  constructor(
    public navCtrl: NavController,
    public afAuth: AngularFireAuth,
    public firebaseProvider: FirebaseProvider,
    public afDB: AngularFireDatabase
    ) {
    this.items = afDB.list('/listings',  ref => ref.orderByChild('age').equalTo('large')).valueChanges();
  }

 login(){
     this.afAuth.auth.signInWithPopup(new firebase.auth.GoogleAuthProvider()).then(res => console.log(res));
 }

 logout() {
    this.afAuth.auth.signOut();
 }

 list(){
    console.log(this.items);
 }

}

我还尝试使用 AngularFireList 而不是 Observable,但它并没有改变问题。我还使用了 afDB.object() 而不是 afDB.list(),我仍然遇到同样的问题。查询也不是问题,因为我尝试使用简单的 .list()/.object() 并再次出现同样的问题。此外,我使用相同的代码(.set())创建了一个数据库,但也无法检索它。

相关规格:

"angularfire2": "^5.0.0-rc.11",
"firebase": "^5.2.0",
"promise-polyfill": "^8.0.0",
"ionic-angular": "3.9.2",
"@angular/compiler-cli": "5.2.11",
"@angular/core": "5.2.11",

操作系统:Windows10 测试平台:Google Chrome 浏览器/ Firefox 浏览器/ Android SDK 模拟器


你已经定义了你的items作为可观察变量(这是正确的)但是如果您想使用从该可观察值返回的数据,则需要订阅该可观察值。

constructor(
    public navCtrl: NavController,
    public afAuth: AngularFireAuth,
    public firebaseProvider: FirebaseProvider,
    public afDB: AngularFireDatabase
) {
    this.items = afDB.list('/listings',  ref => ref.orderByChild('age').equalTo('large')).valueChanges();
    this.items.subscribe( valueOfItems => {
        console.log(valueOfItems);
    })
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularFireDatabase 不检索数据 的相关文章

随机推荐

  • 使用 Python 注册“Hello World”DBus 服务、对象和方法

    我正在尝试导出名为的 DBus 服务com example HelloWorld 有一个物体 com example HelloWorld 和方法com example HelloWorld SayHello如果使用调用该方法 则打印 he
  • Spring Integration - 如何保留原始有效负载并在以后使用它?

    我想保留原始请求的原始有效负载 并将其放入 xslt transformer 或其他操作中 我丢失了它 因为我使用 xslt transformer 并且我只需要转换中的一些元素 所以我的场景是 1 inbound gateway 传入 W
  • MySQL:跨多个表的多列联接?

    我有一组三张表 Dining Tables Field Type Null Key Default Extra dining table int 11 NO PRI NULL bus boy varchar 35 NO NULL
  • 在 Chrome 中调试 XSLT

    我在 Chrome 中进行 XSL 翻译时遇到问题 我想知道是否有任何工具可以让我逐步浏览样式表以查看问题出在哪里 Use 节点测试 http dpawson co uk xsl sect2 nodetest html检查 XPath 查询
  • 超时已过。操作完成之前超时时间已过,或者服务器未响应。该语句已终止

    我的网站有很多用户 每天20000 60000 这是一个移动文件下载网站 我可以远程访问我的服务器 Windows Server 2008 R2 我收到了 服务器不可用 之前有错误 但现在我看到连接超时错误 我对此不熟悉 为什么会发生这种情
  • 将数据批量加载到sqlite中?

    有人对可用于将存储在分隔文本文件中的数据批量加载到 SQLite 数据库中的实用程序有任何提示吗 理想情况下 可以从脚本等中将其作为独立程序调用 我工作的一个小组拥有一个 Oracle 数据库 该数据库会将大量数据转储到文件中 然后将这些数
  • 使用环境变量设置 Hystrix 超时

    为了更改 Hystrix 的默认请求超时 1000ms 必须设置以下属性 hystrix command default execution isolation thread timeoutInMilliseconds 2000 对应的环境
  • 如何让浏览器(IE和Chrome)在脚本之前请求图像?

    Note 如果您是第一次阅读本文 您可以直接跳到更新 因为它更准确地解决了问题 所以我得到了一个网页 在头部我有一个 CSS 背景图像 在页面底部我加载我的脚本 由于脚本位于页面底部 CSS 位于页面顶部 我假设浏览器将首先加载图像 然而
  • 使用 ItemsSource 之前,项目集合必须为空

    如果我将 DataTrigger 放入一个简单的列表框中 我会收到此运行时异常 使用 ItemsSource 之前 项目集合必须为空 我的列表框没有数据触发 也不例外
  • 删除父级 DIV

    我有这个html代码 div class action some text a class delete action some a div div class action some text a class delete action
  • 将 r 中的数据帧转换为事务或 itemMatrix?

    我有一个数据data frame我想将其转换成的格式transactions or an itemMatrix 检查功能arules支持这两种数据格式这就是我问这个问题的原因 library arules 示例 1 从矩阵创建交易 a ma
  • 如何在primeng自动完成角度8中对建议嵌套列表进行分组

    我正在尝试对自动完成建议进行分组 并希望在 primeng 中呈现它们 我们如何在primeng中添加自定义模板 my data data id m1 name menu1 val D items id d1 name datanested
  • 修复重载运算符“+”的使用不明确?

    我使用 C 11 标准编写了以下代码 h file include Auxiliaries h class IntMatrix private Dimensions dimensions int data public int size c
  • Cocoa 脚本:返回“null”与“缺失值”

    看来 AppleScript 知道这个特殊值null 如何从基于 Cocoa 脚本的应用程序中为可编写脚本的属性返回这样的值 如果我回来nil NULL or NSNull对于来自我的基于 Cocoa 脚本的应用程序的可编写脚本的属性 ge
  • Bootstrap 右栏位于移动视图顶部

    我有一个像这样的引导页面 div class row div class col md 6 A div div class col md 6 B div div 好像 A B 因此 如果我在移动设备上查看它 A 列位于顶部 但我希望 B 列
  • 正则表达式大于零,保留 2 位小数

    我需要一个正则表达式来表示最多两位小数大于零的数值 并且个数列中可能有也可能没有零 我还应该添加 整数就可以了 请参阅下面的一些内容 但可能存在前导或尾随空格 Good values 1 0 1 1 12 123 12 92 092 092
  • 修复无效 JSON 的正则表达式

    我正在对服务进行 API 调用 但它返回无效的 JSON photo url 字段没有将 url 封装在引号中 我将它作为字符串 并尝试编写一个正则表达式来在 url 周围添加引号 我使用 Titanium 在 Javascript 中完成
  • XAMPP - 对于表“users”,用户“@”localhost”的 SELECT 命令被拒绝

    不久前 我删除并弄乱了 XAMPP 中的一些功能 我重新安装了它 并移动 重命名了我的文件夹和所有其他文件 所以我现在有了一个新的空的 xampp 目录 但是 当我尝试使用任何数据库功能时 它会出现如下错误 SELECT command d
  • Redis hash写入速度非常慢

    我面临一个非常奇怪的问题 使用 Redis 时 我的写入速度非常糟糕 在理想的情况下 写入速度应该接近 RAM 上的写入速度 这是我的基准 package redisbenchmark import redis clients jedis
  • AngularFireDatabase 不检索数据

    每当我使用 afDB list path 方法时 我都会得到以下信息 console log this items https i stack imgur com RtwkN png 我有这个例子作为我的 firebase 数据库 列表文件