所以我尝试使用以下代码“
从firebase中检索数据Debug.WriteLine($@"Operation time: {elapsedMilliseconds}ms");
无论如何,正如你所看到的,我已经添加了一些用于调试的console.log,它们会得到完全不同的结果。
First Output是我所希望的,例如[Conditional("DEBUG")]
[__DynamicallyInvokable]
public static void WriteLine(string message, string category)
{
TraceInternal.WriteLine(message, category);
}
等等。但对于第二个输出,我明白了。
知道如何在loadblah(){
var valueArray = [];
valueArray = firebase.database().ref("/Users/johnny/files/").once('value', function(snapshot){
console.log(snapshot.val()); //First output
return snapshot.val();
});
console.log(valueArray); //Second output
}
中检索数据吗?任何帮助都会非常感激,我对此很新。
编辑:更好的是,如果你能以某种方式向我展示如何使用.on功能来同步那些非常棒的东西
答案 0 :(得分:1)
对于第一次使用Firebase的人来说,这种混淆很常见。
Firebase once
调用是异步操作,因此,只有在您的下载最终完成后才能完成 - 长之后 您的loadblah()
函数返回。 时,将调用提供的函数,您的数据可以在snapshot.val()
中使用。
相反,存储在valueArray
var中的返回值是firebase.Promise
,它提供了另一种等待此值到达的方法。
您已为function
电话提供once
,因此您暂时可以忽略承诺路线。换句话说,将传递给once
的函数中的快照处理逻辑添加到中(并忽略其返回值)。