Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Анонимная аутентификация с Firebase с использованием JavaScript

Вы можете использовать Firebase Authentication для создания и использования временных анонимных учетных записей для аутентификации с Firebase. Эти временные анонимные учетные записи могут использоваться, чтобы позволить пользователям, которые еще не зарегистрировались в вашем приложении, работать с данными, защищенными правилами безопасности. Если анонимный пользователь решит зарегистрироваться в вашем приложении, вы можете связать его учетные данные для входа с анонимной учетной записью, чтобы они могли продолжать работать со своими защищенными данными в будущих сеансах.

Прежде чем вы начнете

  1. Добавьте Firebase в свой проект JavaScript .
  2. Если вы еще не подключили свое приложение к проекту Firebase, сделайте это из консоли Firebase .
  3. Включить анонимную аутентификацию:
    1. В консоли Firebase откройте раздел Auth .
    2. На странице " Методы входа" включите метод анонимного входа.

Анонимно аутентифицируйтесь с Firebase

Когда вышедший из системы пользователь использует функцию приложения, требующую аутентификации с помощью Firebase, войдите в систему анонимно, выполнив следующие действия:

  1. Вызовите метод signInAnonymously :
    firebase.auth().signInAnonymously().catch(function(error) {
      // Handle Errors here.
      var errorCode = error.code;
      var errorMessage = error.message;
      // ...
    });
    
    Здесь вы также можете обнаруживать и обрабатывать ошибки. Список кодов ошибок см. В Справочной документации по аутентификации .
  2. Если метод signInAnonymously завершается без ошибок, onAuthStateChanged наблюдатель, зарегистрированный в onAuthStateChanged , и вы можете получить данные учетной записи анонимного пользователя из объекта User :
    firebase.auth().onAuthStateChanged(function(user) {
      if (user) {
        // User is signed in.
        var isAnonymous = user.isAnonymous;
        var uid = user.uid;
        // ...
      } else {
        // User is signed out.
        // ...
      }
      // ...
    });

Преобразование анонимной учетной записи в постоянную.

Когда анонимный пользователь регистрируется в вашем приложении, вы можете разрешить ему продолжить работу с его новой учетной записью - например, вы можете захотеть сделать элементы, которые пользователь добавил в свою корзину, прежде чем он подписался, доступными в своей новой корзину покупок аккаунта. Для этого выполните следующие действия:

  1. Когда пользователь регистрируется, завершите процесс входа в систему для поставщика аутентификации пользователя до, но не включая, вызова одного из методов Auth.signInWith . Например, получите токен Google ID пользователя, токен доступа Facebook или адрес электронной почты и пароль.
  2. Получите AuthCredential для нового поставщика аутентификации:

    Вход в Google
    var credential = firebase.auth.GoogleAuthProvider.credential(
        googleUser.getAuthResponse().id_token);
    
    Логин в фейсбук
    var credential = firebase.auth.FacebookAuthProvider.credential(
        response.authResponse.accessToken);
    
    Email-пароль для входа
    var credential = firebase.auth.EmailAuthProvider.credential(email, password);
    
  3. Пропустите AuthCredential объекта к знаку-в профиль link метода:

    auth.currentUser.linkWithCredential(credential)
      .then(function(usercred) {
        var user = usercred.user;
        console.log("Anonymous account successfully upgraded", user);
      }).catch(function(error) {
        console.log("Error upgrading anonymous account", error);
      });

Если вызов для link успешен, новая учетная запись пользователя может получить доступ к данным Firebase анонимной учетной записи.

Следующие шаги

Теперь, когда пользователи могут проходить аутентификацию с помощью Firebase, вы можете контролировать их доступ к данным в своей базе данных Firebase с помощью правил Firebase .