5

Ich versuche eine Firebase-Datenbank einzurichten, die nur ich schreiben kann. Daher hat kein Benutzer die Erlaubnis, etwas zu schreiben. Aber jeder wird es lesen können.Wie kann man nur einen Admin-Benutzer Firebase-Datenbank schreiben lassen?

Allerdings konnte ich die Regeln dafür nicht einrichten. Ich habe einen Admin-Benutzer, den ich mit E-Mail/Passwort-Login erstellt habe, und ich kenne seine UID. Nehmen wir an, meine UID ist: dJrGShfgfd2

Ich habe diese beiden Methoden versucht, aber sie erlaubten mir nicht in die Datenbank zu schreiben.

{ 
    "rules": { 
    "events": { 
     ".read": true, 
     ".write": "auth.uid === 'dJrGShfgfd2'" 
    } 
    } 
} 

.

{ 
    "rules": { 
    "users": { 
     "$user_id": { 
     ".read" : true, 
     ".write": "$user_id === 'dJrGShfgfd2'" 
     } 
    } 
    } 
} 

Also wie erlaube ich nur einem Benutzer mit einer bestimmten UID, etwas in die Datenbank zu schreiben?

+0

Die Regeln im ersten Snippet sollten in Ordnung sein. Sie sollten Schreibzugriff auf den Pfad "Ereignisse" für den Administrator und Lesezugriff für andere erteilen. – cartant

+0

Warte Ich habe keinen Ereignispfad oder etwas in meiner Datenbank. Wie definiere ich Schreibregeln, die überall gelten? – yigitserin

+0

Sie haben 'Ereignisse' in Ihrer Regelhierarchie. Wenn es keinen solchen Schlüssel in der Datenbank gibt, entferne ihn und verschiebe '.read' und' .write' unter 'rules'. – cartant

Antwort

6

sollte diese Arbeit:

{ 
    "rules": { 
    ".read": true, 
    ".write": "auth.uid === 'dJrGShfgfd2'" 
    } 
} 

Jeder in der Welt in der Lage sein wird, die Daten, sondern nur der Benutzer mit UID dJrGShfgfd2 (und processes with administrative access) den Daten schreiben kann, zu lesen.

+0

können Sie dies vollständig auf der Client-Seite tun, was bedeutet, dass Sie Mitglieder gegen Mitglieder System bezahlt haben, ohne ein Backend zu haben. Wie würde ich darüber gehen, wenn der Benutzer zahlt, werden sie Mitglied. –

+0

was Sie tun können, ist auf dem Server nach einer Variablen zu suchen, die sagt, dass sie bereits bezahlt haben. Danach können Sie die Regel über die Berechtigungen hinzufügen, um zu überprüfen, ob diese Variable "true" ist, dh der Benutzer bezahlt hat oder "false" bedeutet, dass der Benutzer nicht bezahlt hat. – CraftedGaming

+0

Wie kann ich dies mit einer E-Mail anstelle von tun eine UID? – Tomer

Verwandte Themen