我使用 Firebase 的三向数据绑定方法同步了一个朋友列表$uid
(在我的代码中定义)。userId
我注意到,当在同一台计算机上(我在同一个浏览器中测试)时,我注销然后使用另一封电子邮件登录,然后 Firebase 会不断同步上一个电子邮件的数据userId
因此,如果我先登录,userId = "userId_1"
然后再注销,使用另一封电子邮件和 my 登录userId = "userId_2"
,在我的 friendsList 中,我会从 refs 中获得一个三向数据绑定的朋友列表:
fbREF + "/friends/" + "userId_1"
和
fbREF + "/friends/" + "userId_2"
如何停止从旧 userId 同步数据?
方法
在我的工厂,我同步如下:
self.syncFriends = function(userId) {
var ref = new Firebase(fbREF + "/friends/" + userId);
return $firebaseObject(ref);
};
哪里fbREF = "https://CUSTOMREF.firebaseio.com"
;
当用户登录时,显然他有一个由函数检索到的 userId ref.onAuth(fnCallback)
,我将其调用如下:
self.checkSocialAuthState = function() {
var qCheck = $q.defer();
// --
function authDataCallback(authData) {
if (authData) {
qCheck.resolve(authData);
} else {
qCheck.reject("SOCIALAUTH_LOGGED_OUT")
console.log("User is logged out");
}
};
// --
var ref = new Firebase(fbREF);
ref.onAuth(authDataCallback);
return qCheck.promise;
};
然后userId
嵌入到authData["auth"].uid
.