Firebase продолжает синхронизировать объект с трехсторонней привязкой при выходе из системы

Я синхронизирую список друзей для $uid (в моем коде он определен как userId), используя трехсторонний метод привязки данных Firebase.

Я заметил, что когда на том же компьютере (я тестирую в том же браузере) я выхожу из системы, а затем вхожу с другим адресом электронной почты, то Firebase продолжает синхронизировать данные из предыдущего userId

Итак, если я сначала войду в систему и использую свой userId = "userId_1", а затем выйду из системы, войду с другим адресом электронной почты и моим userId = "userId_2", в моем списке друзей я получу трехсторонний список друзей с привязкой к данным из ссылок:

fbREF + "/friends/" + "userId_1"

а также

fbREF + "/friends/" + "userId_2"

Как остановить синхронизацию данных со старым идентификатором пользователя?


Метод

На моей фабрике я синхронизирую следующим образом:

    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.


person JohnAndrews    schedule 17.06.2015    source источник
comment
Я не использую angularFire, но как вы выходите из системы? Вы используете $unauth()? firebase.com/docs/ веб/библиотеки/угловой/   -  person Daniel Falabella    schedule 21.06.2015
comment
Хм, я использую ref.unauth(), а не $. Должно ли это иметь значение?   -  person JohnAndrews    schedule 22.06.2015


Ответы (1)


Если вы не выполните соединение метода unauth(), оно будет активным на конце firebase. Следовательно, пожалуйста, выполните unauth() при выходе из системы. Это должно решить вашу проблему.

person Ajay Parsana    schedule 03.10.2015