无法从Firebase检索数据

时间:2019-08-19 08:24:47

标签: typescript firebase firebase-realtime-database angularfire2

我制作了一个应用程序,用户首次登录时可以在该应用程序上登录并登录,他/她的信息存储在firebase上。我的问题是,当我尝试调用未获取的数据时,控制台日志中显示的内容是:-

FirebaseListObservable {_isScalar: false, $ref: Reference, source: FirebaseListObservable, operator: ObserveOnOperator}
$ref: Reference {repo: Repo, path: Path, queryParams_: QueryParams, orderByCalled_: false}
operator: ObserveOnOperator {scheduler: ZoneScheduler, delay: 0}
source: FirebaseListObservable {_isScalar: false, _subscribe: ƒ, $ref: Reference}
_isScalar: false
__proto__: Observable

我尝试更改要呼叫的孩子,但得到的结果相同。

这是我的代码的一部分:-

constructor(public afdb: AngularFireDatabase, public afAuth: AngularFireAuth, public alrtCtrl:AlertController) {
    console.log('Hello FirebaseProvider Provider');
    afAuth.authState.subscribe(user => {
      if (user) {this.id = user.uid}
    });
  }

  addUser(user){
      firebase.database().ref('Users').child(user.UID).child('User Details').set(user);
      let alert = this.alrtCtrl.create({
        title:'Sign Up',
        subTitle:'You have signed up successfully',
        buttons:['OK']
      })
      alert.present();
  }

 getUser() {
    return this.afdb.list('/Users/'+this.id+'/User Details/');
 }

我希望数据将返回并存储在另一个ts文件中的变量中:-

constructor(public firebase: FirebaseProvider,public afAuth: AngularFireAuth,public navCtrl: NavController, public auth: AuthProvider) {
    this.user = this.firebase.getUser();
    console.log(this.user);
  }

但是相反,我一直得到控制台日志中显示的结果,而不是实际数据。

1 个答案:

答案 0 :(得分:0)

如果没有任何效果,您可以尝试以下代码吗?

this.itemsRef = db.list('messages');
// Use snapshotChanges().map() to store the key
this.items = this.itemsRef.snapshotChanges().map(changes => {
  return changes.map(c => ({ key: c.payload.key, ...c.payload.val() }));
});