【问题标题】:How do you save a Firebase snapshot to a variable to be used elsewhere?如何将 Firebase 快照保存到变量中以在其他地方使用?
【发布时间】:2020-05-11 22:08:31
【问题描述】:

有可能吗?

我已经看到这个问题在这里出现了很多,但似乎没有人给出我正在寻找的答案。假设您有以下代码,应该从您的数据库中获取 Firebase 对象并返回值:

function get(target){
    return database.ref(target).once("value",function(snapshot){
        //console.log(snapshot.val());
        return snapshot.val();
    });
}

在我的例子中,期望是返回一个对象,即{"hello":"world"}。但是,我的结果始终是Promise {<pending>}。我已经对此进行了一些修改,我即将获得的唯一其他输出是undefinedPromise {<resolved> {"hello":"world"}}。后者几乎是我想要的,但仍然不完全。

如何设置函数get() 使其返回snapshot.val() 的实际值而不是承诺。例如:

let response = get("/foo");
console.log(response["hello"]);

这个结果应该是world

【问题讨论】:

    标签: javascript firebase firebase-realtime-database promise firebase-authentication


    【解决方案1】:

    您需要返回 Promise 才能在其他地方使用该对象:

    function get(target){
        return Promise((resolve, reject) =>{
    database.ref(target).once("value",function(snapshot){
            //console.log(snapshot.val());
            resolve(snapshot.val());
         });
        });
    }
    

    那么当你调用这个函数的时候,你可以做到以下几点:

    get(target).then((data) =>{
      console.log(data);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-10
      • 2019-09-04
      • 2017-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多