我使用的是angularFire 0.8.2,我試圖檢查用戶的唯一性。
此用戶存儲在users/[id]中,其中[id]是來自社交網絡(例如:facebook:891239120)的simpleLogin生成的用於登錄/密碼用戶的id和社交uid。
所以,當我與Facebook登錄,我需要檢查,如果該用戶已經在火力點,所以我使用(從angularFire種子):
var userData = fbutil.syncObject('users/' + user.uid);
userData.$loaded()
.then(function (data) {
if(data) {
console.log('EXISTS');
console.log(data.$id);
} else {
console.log('NOT EXISTS');
}
}, function (err) {
console.error(err);
});
但是,這並不是因爲工作數據對象總是被返回(即使對象不是用關鍵字user.uid也不存在)
我發現obj。$ value在obj爲空時填充null,而在obj沒有原始值時不存在,但我不確定這是否是檢查它的正確方法。
而且我也不知道我是否在/ users上使用$ asArray,它會加載firebase上的每個用戶而不是生產中的性能問題?
要注意的是'!='不足以包含對象,而不是原語的快照,因爲'$ value'將是不確定的,因此空值ISH。用於JavaScript的Hooray。 – 2017-02-03 20:28:35
對於對象,它不會存儲在'$ value'中(它將作爲關鍵字存儲在'data'中,而不是特殊的'$ value'屬性中,因此可能是一個爭議點。 – Kato 2017-02-06 23:55:42
This doesn不要爲對象工作,因爲$ value無論如何都是空的,請參閱我的答案;) – 2017-11-14 12:59:37