Ich habe Probleme beim Schreiben in meine Firebase-Datenbank in meiner einfachen Android-App. Ich habe meine Datenbank Regeln öffentlich sein:Firebase-Datenbankberechtigung verweigert mit Lese-/Schreibberechtigungen, die auf "true" gesetzt sind
{
"rules": {
".read": true,
".write": true
}
}
Erstellt eine einfache Klasse Message
:
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
public class Message {
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference dbRef = database.getReference();
public String sender;
public String message;
public Message(){}
public Message(String sender, String message) {
this.sender = sender;
this.message = message;
}
}
und eine Taste legen Sie die OnClick Methode writeNewMessage
mit diesen sind die wesentlichen Zeilen Code auszuführen:
int counter = 0;
public void writeNewMessage(View view) {
counter += 1;
Message messageToWrite = new Message("John", "Simple message: " + counter);
String messageId = String.valueOf(counter);
dbRef.child("users").child(messageId).setValue(messageToWrite);
}
Beim laufen, erhalte ich die Fehlermeldung:
W/RepoOperation: setValue at /users/1 failed: DatabaseError: Permission denied
Ich weiß, diese Frage scheint einfach und wahrscheinlich wiederholt worden zu sein, aber ich habe noch keine finden, die dieses Problem stellt, ohne ihren Fehler in der Authentifizierung oder einer anderen Komponente beteiligt sein. Die Einfachheit des Problems verwirrt mich am meisten.
EDIT: Ich habe auch auch diesen Fehler gefunden:
Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor"
Hmmm ... die Regeln sehen gut aus, das hört sich merkwürdig an. Sind Sie sicher, dass Sie die Regeln gespeichert/veröffentlicht haben? –
Ich habe den veröffentlichten Knopf gedrückt und den Simulator erfolgreich versucht, so weit ich weiß, dass er veröffentlicht wurde! –
Sehr merkwürdig.Ein paar Dinge zu überprüfen: Erstens, können Sie Ihre google-services.json überprüfen und sicherstellen, dass das Projekt, das Sie verwenden, das ist, das Sie erwarten. Zweitens, können Sie versuchen, Auth aus dem Projekt zu entfernen (Kommentar die Gradle Abhängigkeit für Firebase-Auth, wenn es dort ist) und sehen, ob das einen Unterschied macht? –