2016-05-29 13 views
0

私は次の問題で困惑しています。私がFirebaseに持っているいくつかのデータを見るための少しのWebページを作っているうちに、私が望むものにアクセスできない場所があります。 もちろん、私はこの場所にサーバ上に何かがあることを知っています。ここにコードがありますが、localRef.once()は決して呼び出されないようです。それはおよそどこでも必要としてデータにアクセスref.once()がFirebaseで呼び出されていない

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がブラウザに貼り付けて、私が期待するデータを見て、正しいことを確認しました。 どうしたらいいですか?私は誰かが私にヒントを与えることを願っています。

+0

コード/フローは私のために働きます:http://jsbin.com/vujinaloci/edit?html,js,console。あなたは問題を再現する同様の最小限のjsbinを設定できますか? –

答えて

0

(注:これは新しい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) 
    ... 
}); 

注:URLが正しくないかのようにURLが正しいことを確認してください。私はあなたのURLを試して、それは応答していないようです。

+0

'for(snapshot.val())'の代わりに 'snapshot.forEach()'を使います。後者は子供の秩序を維持する。 –

+0

私はついにそれがシンクロ問題だったという問題を解決しました。私は物事が起こるのを待っていませんでした。私はしばらくの間、約束と戦わなければならなかった。どうもありがとう。 – Michel

関連する問題