Разрешения Firestore несовместимы, когда пользователь регистрируется - PullRequest
0 голосов
/ 15 апреля 2020

У меня установлена ​​авторизация Firebase с электронной почтой и паролем, и после того, как пользователь создает учетную запись, я создаю документ для пользователя в Firestore.

Обычно это работает, но иногда (возможно, 10%) пользователь создается в Auth, но не в firestore, с кодом ошибки:

FirebaseError: [code = access-denied]: отсутствует или недостаточно прав

    function registerUser (name, email, password){

        firebase.auth().createUserWithEmailAndPassword(email, password).then(function() {
            // Registration successful, create firestore document

            db.collection("users").doc(email).set({
                name: name,
                email: email,
                level: maxProblemSet,
                premium: false
            })
            .then(function() {
                //Success
                window.location.replace(myUrl);
            }).catch(function(error){
                //Registered with auth but not stored in database
                alert(error);
            });

        }).catch(function(error) {
        // Handle Auth Errors here.
            alert(error);
    }); 

    }

Мои правила безопасности для коллекции пользователей выглядят так:

match /users/{user} {
  allow read, write: if request.auth.token.email == user;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...