【问题标题】:Firebase promise returns nonsense objectFirebase 承诺返回无意义的对象
【发布时间】:2017-02-16 16:59:15
【问题描述】:

我正在尝试使用 Firebase(promises) 和 Angularfire(observables) 的不同方式。我注意到,当我使用 Firebase 运行查询时,promise 返回一个无意义的对象。

userRef = firebase.database().ref('/users')
                .equalTo(member.email, 'email')
                .once('value');
userRef.then(res => console.log(res));

输出类似于:

W {A: P, U: V, g: $d}. 

您可以深入研究该对象,但由于没有一个键被标记为“数据”或“响应”之类的任何可理解的标记,因此很难 1)追踪我的数据可能在哪里(如果在任何地方)或 2)甚至看起来在文档中我得到什么样的对象以及为什么。我所知道的是它没有 .then 或 .subscribe 方法,所以它不是一个 promise 或 observable。

我得到了什么,我该怎么做才能真正获得我请求的用户?

【问题讨论】:

    标签: firebase promise firebase-realtime-database response


    【解决方案1】:

    firebase 承诺返回的是snapshot。你需要调用val()来获取你想要的值。

    来自official blog post

    ref.child('blogposts').child(id).once('value').then(function(snapshot) {
      // The Promise was "fulfilled" (it succeeded).
      renderBlog(snapshot.val());
    }, function(error) {
      // The Promise was rejected.
      console.error(error);
    });
    

    【讨论】:

    • 我会说是的,就是这样,除了我知道查询返回一个条目(我之前运行过),并且该对象上的 val 返回 null。所以我想知道它是否实际上是一些格式错误的错误。
    猜你喜欢
    • 2020-01-04
    • 2018-09-27
    • 2020-10-11
    • 2014-10-05
    • 1970-01-01
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多