Firebase の 3 方向データ バインディング メソッドを使用して、$uid
(私のコードで定義されている)のフレンドのリストを同期します。userId
同じコンピューター (同じブラウザーでテスト) でログアウトしてから別のメールでログインすると、Firebase が以前のデータを同期し続けることに気付きました。userId
したがって、最初にログインしてuserId = "userId_1"
からログアウトし、別の電子メールと my でログインするとuserId = "userId_2"
、friendList で refs から 3 方向のデータバインドされた友人のリストを取得します。
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"
;
ユーザーがログインしているとき、明らかに、彼は function によって取得された 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
ます。