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ます。