Я впервые использую Firebase и пытаюсь читать и писать в базу данных в реальном времени. Однако, когда я закончил учебник Google и запустил свое приложение, метод чтения / записи не удался. Почему простое чтение / запись терпит неудачу?
Я убедился, что для аутентификации было установлено «разрешить чтение, запись;». Я также проверил свои скрипты Gradle и не увидел ничего недостающего на уровне проекта или приложения.
Код из учебника:
private static final String TAG = "MainActivity";
...
writeReadDatabase()
...
public void writeReadDatabase()
{
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");
myRef.setValue("first write and read");
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String value = dataSnapshot.getValue(String.class);
Log.d(TAG, "Value is: " + value);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.w(TAG, "Failed to read value.", databaseError.toException());
}
});
}
Журналы отладки:
W/SyncTree: Listen at /message failed: DatabaseError: Permission denied
W/RepoOperation: setValue at /message failed: DatabaseError: Permission denied
База данных - это просто сообщение по умолчанию о том, что база данных готова.
Я пытаюсь заставить Журналы показываться в Android Studio и что-то регистрировать в базе данных, чтобы убедиться, что оно работает. Я не вижу причины, по которой в разрешениях будет отказано, если не установлены никакие правила.
Edit:
* Я был на Firestore.
Edit2:
* Мои правила были установлены на ложь.
Edit3:
{
"rules": {
".read": true,
".write": true
}
}
Я изменил правила и снова запустил приложение, теперь база данных работает.