Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未在Firebase上调用ref.once()_Javascript_Firebase_Firebase Realtime Database - Fatal编程技术网

Javascript 未在Firebase上调用ref.once()

Javascript 未在Firebase上调用ref.once(),javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我对以下问题感到困惑。在制作一个小网页以查看Firebase上的一些数据时,有些地方我无法访问我想要的内容。 我当然知道服务器上的这个地方有东西。下面是代码,似乎从来没有调用过localRef.once() var dbLocalURL = "https://atinytestapp.firebaseio.com/MyList/rc99/"; var localRef = new Firebase(dbLocalURL); localRef.once("value", function(snap

我对以下问题感到困惑。在制作一个小网页以查看Firebase上的一些数据时,有些地方我无法访问我想要的内容。 我当然知道服务器上的这个地方有东西。下面是代码,似乎从来没有调用过localRef.once()

var dbLocalURL = "https://atinytestapp.firebaseio.com/MyList/rc99/";
var localRef = new Firebase(dbLocalURL);
localRef.once("value", function(snapshot) {
    // WE NEVER COME HERE !!!!
    for (record in snapshot.val()) {
        document.write(record)
        var recordRef = new Firebase(dbLocalURL+record+"/");
        recordRef.once("value", function(rcdSnapshot) {
            var rcdData = rcdSnapshot.val();
            document.write(rcdData[“someKey”])
        })
    }
}, function (errorObject) {
    // WE NEVER COME HERE !!!!
    console.log("The read failed: " + errorObject.code);
    document.write("The read failed: " + errorObject.code);
});
我访问数据的页面在任何地方都能正常工作,除了有上述行为的地方。 此外,我还检查了我使用的URL是否正确,方法是将其粘贴到浏览器中并查看我期望的数据。 我会错过什么?我希望有人能给我一个提示。

(注意:这是新的Firebase 3方式) 这没有包含在问题的代码中,但这里是上的初始化(为了完整起见)

火基2

var ref = new Firebase("https://atinytestapp.firebaseio.com/MyList/rc99/");

ref.on("value", function(snapshot) {
  snapshot.forEach(function(record) { //ordered records, see comment
    document.write(record)
    ...
});

注意:确保url是正确的,就好像它的格式不正确一样,它根本不起作用。我尝试了你的url,但它似乎没有响应。

使用
snapshot.forEach()
而不是
for(record in snapshot.val())
。后者将维持孩子们的秩序。我终于解决了这个问题——这是一个同步问题。我并不是在等待事情发生。我不得不与承诺抗争一段时间,现在它起作用了。非常感谢。可能对某人有用:
one('value',function)
吞下了我的错误消息。当我更新到
一次('value')。然后(函数)
我能够在控制台中看到一条错误消息。代码/流程对我有效:。你能设置一个类似的最小jsbin来重现这个问题吗?
firebase.database().ref('MyList/rc99').once('value').then(function(snapshot) {
    for (record in snapshot.val()) { //unordered records, see comment
       document.write(record)
       ...
var ref = new Firebase("https://atinytestapp.firebaseio.com/MyList/rc99/");

ref.on("value", function(snapshot) {
  snapshot.forEach(function(record) { //ordered records, see comment
    document.write(record)
    ...
});