【发布时间】:2020-03-27 13:34:25
【问题描述】:
我正在构建一个使用 JS 和 firebase 作为我的数据库的 Web 应用程序,但我正在努力调用我的 gotData 函数来获取它的返回值。
var dbRef = firebase.database().ref('testing');
function reading(){
dbRef.on('value', gotData,errData) ;
}
function gotData(data){
var tests = data.val();
var keys = Object.keys(tests);
var length = keys.length;
var k = keys[lengthe-1];
console.log(k)
console.log(data)
return k;
}
function errData(err){
alert('error')
}
代码有效,我得到返回的最新文档的 documentID,但我未能调用此值。
我试过了:
var fbid = gotData(data);
但我得到一个 数据未定义 错误。据我了解,数据仅用于引用 Firebase 数据,因此我可以对其进行操作。我需要做什么才能使用它的数据调用函数?
【问题讨论】:
-
这听起来确实很不寻常,因为快照应该始终存在于回调中。我没有立即看到您发布的代码有什么问题。能不能在jsbin之类的网站上设置一个小复刻,让我看看?
-
这里是 jsbin:jsbin.com/jenahuh/edit?html,output。这部分代码仅用于测试,一旦工作,我将在我的网站中实现它。此函数的唯一目的是获取我的 Firebase 中最新文档的 ID(我的代码中的 var k),然后在另一个函数中使用它。感谢您对此进行调查:)
-
不幸的是,这不是很有帮助,因为它实际上并没有重现问题。如果您害怕共享您的项目配置(is not needed,但仍然很常见),您可以为 jsbin 创建一个临时项目,然后删除该项目。
-
好的,问题解决后我会删除。这是整个项目,所以我希望这有助于找到解决方案:jsbin.com/mewojen/edit?html,output
标签: javascript firebase firebase-realtime-database