javascript - Firebase 从函数返回输出

标签 javascript firebase firebase-realtime-database

我是 firebase 的新手,我正在尝试在函数中传递 $variable 以检查 $variable 是否存在。

function ifExistWaybillNo(waybill_no)
{
  var databaseRef = firebase.database().ref('masterlist');
  databaseRef.orderByChild("waybill_no").equalTo(waybill_no).on('value', function(snapshot){
    alert(snapshot.exists()); //Alert true or false
  });
}

上面的函数工作正常,但是当我将 alert(snapshot.exists()); 更改为 return snapshot.exists(); 时,它不起作用。它只是返回 undefined,应该返回 truefalse。

我该怎么做?提前致谢

最佳答案

Firebase 所做的几乎所有事情都是异步的。当您调用函数 ifExistWaybillNo 时,它希望立即返回,而不是等待。因此,在您的 databaseRef.orderByChild("waybill_no") 完成之前,调用该函数的语句已经确定返回值是 undefined

解决这个问题的方法是传递一个回调函数并在那里使用返回值。对此的确切解释在这里做得很好:return async call .

您只需要重命名一些函数并遵循那里使用的语法。

开始:

function(waybill_no, callback) { 
    databaseRef.orderByChild("waybill_no").equalTo(waybill_no).on('value', function(snapshot) {
    var truth = snapshot.exists();
    callback(truth); // this will "return" your value to the original caller
  });
}

记住,几乎所有 Firebase 都是异步的。

关于javascript - Firebase 从函数返回输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37536378/

相关文章:

swift - 如何读取 firebase 数据库

javascript - 使用正则表达式查找搜索结果

java - 升级 firebase-crash 导致构建 apk 时出错

Android Firebase 更改多个值

android - 无法从 https ://settings. crashlytics.com/spi/v2/platforms/android/apps/检索设置

ios - 如何在 swift 上制作这样的 firebase 列表

javascript - 灯箱有问题

javascript - 从 JSON 对象读取元素失败

javascript - 如何将数据从 Angular Controller 传递到 JavaScript 或 Paper.js

firebase - foreach 循环无法在 React Native 中与 google cloud firestore 一起使用