每当我使用 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 模拟器