2017-01-13 10 views
0

存在しない可能性のあるデータのクエリをチューニングしています。この場合、コールバックは実行されません。私はドキュメントから理解するので、それは実行する必要があり、snapshot.val()はnullでなければなりませんか?Firebase:データベース参照 'on'メソッドがコールバックを実行していません(javascript)

ここにストリップダウンの例があります:http://surfmaps.eu/trombone/case.html

が実行されていないコールバックの内側にconsole.logがあります。

ここに何か不足していますか?

さようならと感謝、ルイス

コード:

function getData(id) { 
    var ref=firebase.database().ref("support/"+id); 
    console.log("In getData, looking for ",ref); 

    // get support data from firebase 
    ref.on('value',function (snapshot) { 
     console.log("In Value"); 
     console.log(snapshot); 
    }); 

    console.log("end getData, looking for ",ref); 

} 

// on startup 
getData("abc"); 
+0

コードは私のために働いているようです。どの 'console.log'が起動されていないのですか? – adrice727

答えて

3

あなたがデータを読み取るためのアクセス許可を持っていません。これを確認するには、完了リスナーを添付し、それはあなたを与えるエラーを記録することができます

var ref=firebase.database().ref("support/"+id); 
console.log("In getData, looking for ",ref); 

// get support data from firebase 
ref.on('value',function (snapshot) { 
    console.log("In Value"); 
    console.log(snapshot); 
}, function(error) { 
    console.error(error); 
}); 

console.log("end getData, looking for ",ref); 

そうすることを示しています。

Error: permission_denied at /support/abc: Client doesn't have permission to access the desired data.

+0

私はいくつかのエラーコールバックを探していましたが、ドキュメントを読んだ後であっても、それがあったことを認識していませんでした。実際、このコールバックは 'cancelCallbackOrContext'というラベルが付けられています。これは少し誤解を招くようです。 ありがとう! – Vespas

+0

読み取り権限がない場合、リスナーはキャンセルされます。したがって、その名前です。しかし、実際にそこにいくつかの文書があるはずです。どこに行ったかわからない –

関連する問題