我使用的是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