У меня есть правила firestore, такие как:
match /{document=**} {
allow read, write: if request.auth.token.name == "dummyUser";
}
Теперь, когда я создаю userUserWithEmailAndPassword, после того как я создал пользователя, я устанавливаю displayName в «dummyUser», как это, с помощью метода setUsersSecureName (), который я сделал:
fun setUsersSecureName(myCallback: (Boolean?) -> Unit) {
val user = FirebaseAuth.getInstance().currentUser
val profileUpdates = UserProfileChangeRequest.Builder()
.setDisplayName("dummyUser")
.build()
user?.updateProfile(profileUpdates)
?.addOnCompleteListener { task ->
if (task.isSuccessful) {
Log.d(TAG_HELPER_METHODS, "Secure user profile updated.")
myCallback(true)
}
}
}
Я делаю то же самое для анонимных входов. Поэтому я создаю анонимный вход в систему следующим образом:
auth.signInAnonymously()
.addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG_MAIN, "signInAnonymously:success")
val user = auth.currentUser
setUsersSecureName(){
makeRequest()
}
Как видите, после успешного входа в систему с анонимным пользователем я меняю имя пользователя. Теперь это кажется измененным, когда я проверяю это, пользователи displayName - "dummyUser". Тем не менее, запрос пожарного хранилища не работает, и я получаю сообщение в журнале:
PERMISSION_DENIED: Missing or insufficient permissions.
Это также не работает, когда пользователи вошли в систему с помощью электронной почты и пароля. С чего бы это?
Спасибо