Я хотел бы использовать эти правила из security quickstart guideбазы данных аутентификации в реальном времени: не удалось: DatabaseError: Отказано в
{
"rules": {
"users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
}
}
}
Хотя я не понимаю, где auth.uid
читается?
Я могу получить его, чтобы хранить информацию, когда я делаю ниже, поэтому я могу подтвердить, что проблема связана с auth.id
. Я не уверен, что мне нужно передать это как параметр или что-то еще? Боюсь, я здесь потерял.
{
"rules": {
"users": {
"$uid": {
".read": true,
".write": true
}
}
}
}
Это текущий код Java Я использую, чтобы проверить его:
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference();
User u = new User("Jack", "[email protected]", "12345678"); // Very simple class holding this user information
myRef.child("users").child(mFirebaseUser.getUid()).setValue(u);
Я смотрел на информацию о firebases в режиме реального времени базы данных, но каждый раз, когда они добираются до аутентификации они просто «На данный момент мы отключим аутентификацию, но обязательно используем ее в производстве!».
Чтобы узнать о переменной 'auth' в ваших правилах безопасности, см. Https://firebase.google.com/docs/database/security/user-security#section-variable. Он автоматически заполняется, как только пользователь подписывается и в котором содержится свойство 'uid', которое является уникальным идентификатором для подписанного пользователя. –
Код, который вы использовали, не аутентифицирует пользователя, поэтому это правило не будет выполнено '$ uid === auth.uid'. Чтобы узнать, как подписываться на пользователя, см. Https://firebase.google.com/docs/auth/ –
Да, извините, поэтому у меня есть LoginActivity, который аутентифицирует настройки, предназначенные для этого действия. Я считаю, что проблема может заключаться в том, что я аутентифицирую пользователя в другой деятельности и как-то теряю свое «аутентифицированное» состояние. – jackdh