Mit Firebase Android docs mit einer Liste von Daten zu speichern:Firebase Wieder login/zusätzliche Anmeldung werden alle Benutzerdaten
String new_status;
new_status = status_update_text.getText().toString();
Firebase postRef = userRef.child("posts");
Map<String, String> post1 = new HashMap<String, String>();
post1.put("status", new_status);
postRef.push().setValue(post1);
Benutzer gespeichert Datenbank nach der Authentifizierung mit:
//save user to database
Map<String, String> map = new HashMap<String, String>();
map.put("provider", authData.getProvider());
if(authData.getProviderData().containsKey("displayName")) {
map.put("displayName", authData.getProviderData().get("displayName").toString());
}
ref.child("users").child(authData.getUid()).setValue(map);
Sicherheitsregeln zur Zeit:
"rules": {
".read": true,
"$posts": {
// create new post if it doesn't exist but can't modify or delete posts
".write": "!data.exists() || newData.exists()"
}
}
Das Problem ist, wenn sich der Benutzer wieder anmeldet, werden alle gespeicherten Daten gelöscht (I assum e) mit .setValue (Karte). Ich habe versucht, die Schreibregel so hoch wie möglich zu setzen, da ich die Regeln heruntersklaviert habe, aber ich verstehe nicht, warum sie gerade ignoriert wird ???
danke für Ihre Eingabe @frankvanpuffelen. Sie haben versucht, wie Sie es vorgeschlagen haben, aber jetzt erlaubt es keine Schreibvorgänge? Der oben aufgeführte Versuch wurde dem Dokumentationslink entnommen, den Sie angegeben haben. Siehe die letzte Überschrift mit dem Titel "Anonymes Chat-Beispiel". Laut den Kommentaren soll Zeile 34 die Erstellung neuer Nachrichten ermöglichen, aber keine Änderung oder Löschung? – JC23
'! Data.exists() && newData.exists()" 'Das Snippet aus dem Dokumentationsbeispiel verwendet' && ', Sie verwenden ein' || ' –
Ich entschuldige mich für das @frankvanpuffelen. Allerdings' ".write" : "! data.exists() && newData.exists()" 'verhinderte beim Testen alle Schreibvorgänge? Ging zurück und testete alle 3 (&&, || und! data.exists()) Versionen, um sicher zu sein; && und ! data.exists() verhindert das Schreiben, während || alles löscht, wenn sich der Benutzer wieder anmeldet. – JC23