AngularFire 8.0 の使用
以下は、startAt と endAt を使用して firebase からのデータを制限するコードです。
$rootScope.$on('$firebaseSimpleLogin:login', function(e, authUser){
var queryRef = ref.startAt(authUser.uid).endAt(authUser.uid);
var queryArray = $firebase(queryRef).$asArray();
queryArray.$loaded().then(function() {
setCurrentUser(queryArray.$keyAt(0));
});
});
返されるデータは firebase からの単一の要素である必要がありますが、デバッグに console.log を使用すると queryArray が空になります。
startAt と endAt を使用しないと、queryArray には firebase に格納されているすべての要素が含まれます。これは予想どおりです。
Firebase 8.0 のリリース ノートも確認しましたが、これらのリミッターに変更は見られません。
構文上の誤りや、目的の結果を達成できる代替ソリューションがあれば指摘してください。
基本的に、現在のユーザーであるFirebaseから単一のレコードが必要です.authUserは、優先度としてauthUser.uidを持つ承認されたユーザーです。
以下は、ユーザー登録時に Firebase に入力される JSON ファイルです。
{
"users" : {
"User A" : {
"md5_hash" : "d10ca8d11301c2f4993ac2279ce4b930",
"setPriority" : "simplelogin:69",
"username" : "User A"
},
"User B" : {
"md5_hash" : "2076105f6efe7c11e285add95f514b9a",
"setPriority" : "simplelogin:70",
"username" : "User B"
},
"User C" : {
"md5_hash" : "a6d14de05d7b2c3cf4fae7ae14cfa7f3",
"setPriority" : "simplelogin:71",
"username" : "User C"
}
}
}
編集後
以下のコードを使用して優先度を取得します。
queryRef.once('value', function(nameSnapshot) {
var val = nameSnapshot.getPriority();
console.log("Priority is: " + val );
});
ログ出力は次のとおりです。
優先度: null
ユーザーを Firebase に追加する方法は次のとおりです。
create: function (authUser, username) {
users[username] = {
md5_hash: authUser.md5_hash,
username: username,
setPriority: authUser.uid
};
users.$update(username, {
md5_hash: authUser.md5_hash,
username: username,
setPriority: authUser.uid
//$priority: authUser.uid
}).then(function () {
setCurrentUser(username);
});
}, // end of create method