Vor dem Erstellen meines neuen Benutzers möchte ich Firebase überprüfen, um festzustellen, ob der Benutzername bereits in der Datenbank vorhanden ist. Ich würde dies gerne tun, nachdem der Benutzer die Bearbeitung des Textfelds Benutzername abgeschlossen hat (der Rest meines Formulars wird nicht vollständig sein). Ich habe versucht, auf die Firebase-DB zuzugreifen, aber ich bekomme die Warnung "Listener at/Users failed: permission_denied". Von dem, was ich verstehe, muss der Benutzer authentifiziert werden, um in der Firebase-DB zu lesen/schreiben, und offensichtlich wird ein Benutzer, der sich anmeldet, nicht authentifiziert, bevor er sich registriert hat. Gibt es eine Möglichkeit, auf die Datenbank zuzugreifen, bevor die Methode createUserWithEmail:password:completion:
ausgeführt wird?Ist es möglich, vor dem Erstellen eines neuen Benutzers auf Firebase-Daten zuzugreifen? (Swift)
Antwort
Um klar zu sein, lassen Sie mich sagen, dass ich tun NICHT empfehlen, dass Sie dies für Ihren Anwendungsfall tun. Aber in der Regel können Sie nicht authentifizierte Benutzer erlauben Teile der Datenbank zuzugreifen, indem Sie Ihre Sicherheitsregeln für diesen Pfad auf true setzen:
{
"rules": {
".read": true,
".write": true
}
}
Sie würden nicht wollen, so etwas tun, weil Sie nicht wollen, der Öffentlichkeit Zugriff auf die Benutzernamen aller zu geben.
Stattdessen würde ich Cloud-Funktionen für Firebase empfehlen. Sie können eine Cloud-Funktion erstellen, die ausgelöst wird, wenn ein Benutzer einen Benutzernamen auswählt, beispielsweise indem er einen temporären Pfad in der Datenbank erstellt und einen Datenbank-Trigger verwendet. Nun, wenn Sie mit Cloud Functions oder Node.js nicht vertraut sind, werden Sie eine Menge neuer Informationen im Voraus erfahren, aber Sie werden feststellen, dass es viele Anwendungsfälle für Funktionen gibt, so dass es sich lohnt zu lernen.
Hier sind einige Ressourcen zu überprüfen:
Danke für die gründliche Antwort, @JenPerson! Ich wollte "sicher" in die Frage aufnehmen, also werde ich mit Ihrem zweiten Vorschlag fortfahren. – lynchspin
- 1. Ist es möglich, auf eine gesendete E-Mail-Adresse eines Benutzers über POP zuzugreifen?
- 2. Warum ist es nicht möglich, auf die Größe eines neuen Arrays zuzugreifen?
- 3. Ist es möglich, in iOS auf den Gerätecontainer zuzugreifen?
- 4. Ansprüche hinzufügen, wenn Erstellen eines neuen Benutzers
- 5. FTP Erstellen eines neuen Benutzers in AWS
- 6. Erstellen eines neuen WordPress-Benutzers mit Webservice
- 7. Fehlender Vorlagenfehler beim Erstellen eines neuen Benutzers
- 8. Swift: ist es möglich,
- 9. WiX entfernen Standard-IIS-Website vor dem Erstellen eines neuen
- 10. Ist es möglich, auf Android auf das Lautsprechersignal zuzugreifen?
- 11. Ist es möglich, auf iPhone Notizen, Kalender in IOS zuzugreifen?
- 12. Ist es möglich, auf GAE-Datenspeicher ohne HTTP-Anforderung zuzugreifen?
- 13. Ist es möglich zu sehen, welche Apps sich gerade auf dem Startbildschirm eines Benutzers befinden?
- 14. Ist es auf dem Kindle Fire möglich, die E-Mail-Adresse eines Benutzers zu erhalten?
- 15. Erstellen eines neuen Benutzers in ADAL TokenValidated führt zu Duplikaten
- 16. Ist es möglich mit Tag auf UIAlertView zuzugreifen?
- 17. Sicherstellung eines eindeutigen Benutzernamens beim Erstellen eines neuen Benutzers in Firebase (Swift)
- 18. Ist es möglich, statisch auf den Stromregler zuzugreifen?
- 19. Ist es möglich, innerhalb des Containers auf Pod-Informationen zuzugreifen?
- 20. Ist es möglich, direkt von GPU auf die Festplatte zuzugreifen?
- 21. Ist es möglich, den Adressbucheintrag des aktuellen Benutzers zu erhalten?
- 22. Ist es möglich, mit ByteBuddy's Advice auf lokale Variablen zuzugreifen?
- 23. Ist es möglich, kostenlos auf Google Translate API zuzugreifen?
- 24. Ist es möglich, auf den Elternknoten innerhalb der Schleife zuzugreifen?
- 25. Android - Ist es möglich, auf rohe kapazitive Eingabedaten zuzugreifen?
- 26. Wie ist es möglich, auf Speicher anderer Prozesse zuzugreifen?
- 27. Ist es möglich, auf Eigenschaften und Funktionen von userdata zuzugreifen?
- 28. Ist es möglich, auf HttpContext.Current.Session von Web-API zuzugreifen
- 29. Ist es möglich, auf 32-Bit-Register in C zuzugreifen?
- 30. Ist es möglich, auf Schlüssel in demselben Array zuzugreifen - PHP?
Die größere Frage; ist die E-Mail-Adresse, die beim Erstellen eines Firebase-Kontos verwendet wird, die gleiche wie ein * Benutzername *? Wenn ja, wird Firebase Ihnen automatisch mitteilen, ob dieser Benutzername bereits existiert, wenn Sie versuchen, den Benutzer zu erstellen. Wenn nein, warum nicht? – Jay
Ich würde es vorziehen, den Benutzernamen/die E-Mail-Eindeutigkeit unmittelbar nach der Bearbeitung des Textfelds Benutzername/E-Mail zu überprüfen, im Gegensatz dazu, dass der Benutzer das gesamte Formular ausfüllen, abschicken und dann einen neuen Benutzernamen/E-Mail-Adresse auswählen muss es ist ein Duplikat). Aus Gründen der Einfachheit kann ich jedoch nur diesen Weg gehen. Danke @Jay – lynchspin