ref.once()没有在Firebase上调用

时间:2016-05-29 04:57:09

标签: 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(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是否正确,将其粘贴到浏览器中并查看我期望的数据。 我能错过什么?我希望有人能给我一个提示。

1 个答案:

答案 0 :(得分:4)

(注意:这是新的Firebase 3方式) 这不包含在问题的代码中,但这里的初始化(此处为完整性)

// Set the configuration for your app: Replace with your project's config object
  var config = {
    apiKey: '<your-api-key>',
    authDomain: '<your-auth-domain>',
    databaseURL: '<your-database-url>',
    storageBucket: '<your-storage-bucket>'
  };
  firebase.initializeApp(config);

  // Get a reference to the database service
  var database = firebase.database();

并假设您只想读取一次数据:

firebase.database().ref('MyList/rc99').once('value').then(function(snapshot) {
    for (record in snapshot.val()) { //unordered records, see comment
       document.write(record)
       ...

Firebase 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)
    ...
});

注意:确保网址正确,就好像它的格式错误一样,根本无法工作。我尝试了你的网址,它似乎没有响应。