Firebaseの私のデータは、私のWebページのコンテキストでのみ読み込み可能で、Firebase URLを開くなどしては読めません。匿名でサインインしたユーザーのFirebaseルール
まだ登録されていないユーザーの場合は、signInAnonymously()を使用してuser.uidを提供しますが、まだ認証されていないようです。したがって、ユーザオブジェクトを持っていても、ルール".read": "auth != null"
はこれらのユーザに対してPERMISSION_DENIEDになります。私がtrueに読み取りアクセス権を変更するとき
"offices": {
"$office_id": {
".read": "auth != null",
".write": "auth != null"
}
},
それは動作します:
$(document).ready(function() {
var config = {
apiKey: "<my api key>",
authDomain: "<my firebase>.firebaseapp.com",
databaseURL: "https://<my firebase>.firebaseio.com",
storageBucket: "<my firebase>.appspot.com"
};
firebase.initializeApp(config);
firebase.auth().onAuthStateChanged(function (user) {
if (user) {} else {
firebase.auth().signInAnonymously();
}
});
var ref = new Firebase("https://<my firebase>.firebaseio.com/offices/some_office");
ref.on("value", function (snapshot) {
var name = snapshot.child("title").val();
console.log(snapshot.val());
}, function (errorObject) {
console.log("The read failed: " + errorObject.code);
});
});
と対応するルール:
は、ここに私のJavaScriptのです。
サインインした匿名ユーザー(およびログインしているユーザー)のみが自分のデータを読み取ることを許可するためにどのようなルールを使用できますか?
匿名で認証されたユーザーは*認証されたユーザーです。それがうまくいかない場合は、問題を再現する最小限の完全コード(ルール+コード)を提供してください(http://stackoverflow.com/help/mcve)。 –
これはうれしいことです、フランクに感謝します。コードを表示するように編集しました。 – Ken