我使用Firebase的三向数据绑定方法同步$uid
(在我的代码中定义为userId
)的朋友列表。
我注意到当我在同一台计算机上(我在同一浏览器中测试)时,我会注销,然后使用其他电子邮件登录,然后Firebase会保持同步以前userId
因此,如果我首先登录我的userId = "userId_1"
然后注销,请使用另一封电子邮件和我的userId = "userId_2"
登录,在我的friendsList中,我会从refs中获得一个三向数据绑定的朋友列表:< / p>
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"
;
当用户登录时,显然他有一个由函数ref.onAuth(fnCallback)
检索的userId,我将其调用如下:
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
。
答案 0 :(得分:0)
除非你执行unauth()方法,否则firebase端的连接是活动的。因此,请在注销时执行unauth()。它应该可以解决你的问题。