Ich bin neu in Firebase. Ich habe eine Firebase-Echtzeit-Datenbank eingerichtet und kann lesen und schreiben, wenn die Lese- und Schreibregeln auf wahr gesetzt sind.Firebase-Datenbank-Authentifizierung mit E-Mail und Passwort
Ich habe ein Problem mit der Authentifizierung.Ich habe die Authentifizierung für Google und E-Mail plus Passwort eingerichtet.
Mein Ziel ist es, jedem Benutzer zu erlauben, die Daten zu lesen, aber nur ein Benutzer (ich selbst) kann Daten nach dem Einloggen mit einer einzigen E-Mail-Adresse und einem Passwort schreiben.
i aus und schreiben in die Datenbank erfolgreich lesen, wenn ich mit Google anmelden (mit Regeln auf: Auth = null).
i kann aus auch gelesen und in die Datenbank die gleichen Regeln schreiben unter Verwendung von (auth! = null) wenn ich mich mit der Email Adresse und dem Passwort anmelde.
Ich weiß nicht, wie ich es einrichten soll, nur Schreibzugriff für den einzelnen Benutzer zu erlauben, der sich mit einer E-Mail-Adresse und einem Kennwort anmeldet.
Ich habe versucht, einen Benutzerknoten in die Regeln aufzunehmen, aber ich kann nicht zugreifen, wenn ich den Simulator benutze (siehe unten) und ich weiß nicht, wie ich die UID (die ich nach dem Einloggen bekomme) einbinden kann Referenzgebäude - das ist die Referenz i zur Zeit verwenden (die mit der Lese arbeitet und Regeln auf true gesetzt schreiben):
DatabaseReference databaseReference = mRootReference.child("Action_helper/1/Action_table_of_contents");
i keinen Benutzer Knoten in der Datenbank enthalten sind, wie ich gehe davon aus, dass gesorgt wird von Firebase-Authentifizierung.
hier ist das Layout meiner Daten:
ich den Simulator versucht haben Optionen verschiedene Regeln. diese Einstellungen im Simulator (Auswahl der benutzerdefinierten Provider-Option) Testen Zugang:
Auth { "Anbieter": "Feuerbasis", "uid": "Rp3OgoaABMN3hqTv0aF29ECQRCQ2"}
Anmerkung: i erhalten die Anbieter und uid aus Firebase-Objekt, nachdem er mit einer E-Mail-Adresse anmelden und das Passwort, die ich in Firebase-Authentifizierung eingerichtet haben:
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
// User is signed in
userId = user.getUid();
String provider = user.getProviderId();
ich würde mich freuen, wenn ich 1) meine Regeln formulieren würde, 2) ob und wie ich meine Datenstruktur ändern sollte, und 3) schließlich die UID in die Datenbankreferenz aufnehmen, mit der ich Daten in die Datenbank schreiben werde Datenbank.
dank
Versuchen sie bewegen „.mehr‚:‘true“, nach oben Knoten dh legen sie es direkt unter ‚Regeln‘. Knoten Dies ermöglicht es jedermann von Wurzelknoten bis alle anderen untergeordneten Knoten lesen Es wird keine Authentifizierung benötigt, um zu lesen. – 0p3n5ourcE
Und um es zu testen, können Sie im Simulator mit Authenticated versuchen und versuchen, von jedem Knoten zu lesen. – 0p3n5ourcE
danke @openSource für Ihre Hilfe und den Link zu der Firebase Youtube Empfehlung. Ich fand es nützlich, ich habe es endlich wie geplant funktioniert. $ uid === 'Meine E-Mail-Login-ID' in den Regeln zum Schreiben, so dass nur dieser E-Mail-Login in den Benutzerordner schreiben kann (sonst könnte jeder Login-Benutzer dort schreiben). –