Parse zakończy się pod koniec roku, więc zdecydowałem się rozpocząć korzystanie z Firebase. Muszę zaimplementować proces rejestracji z 3 polami: e-mail, nazwa użytkownika, hasło (E-mail & nazwa użytkownika musi być unikalny dla mojej aplikacji).Firebase Android: utwórz nazwę użytkownika unikatową
Ponieważ Firebase nie zapewnia łatwego sposobu zarządzania nazwą użytkownika, taką jak Parse, postanowiłem użyć tylko rejestracji adresu e-mail/hasła i zapisać niektóre dodatkowe dane, takie jak nazwa użytkownika. Oto struktura danych użytkowników:
app : {
users: {
"some-user-uid": {
email: "[email protected]"
username: "myname"
}
}
}
Ale chcę zrobić to, aby nazwa użytkownika była unikalna i sprawdzać ją przed utworzeniem konta. To są moje zasady:
{
"rules": {
".read": true,
".write": true,
"users": {
"$uid": {
".write": "auth !== null && auth.uid === $uid",
".read": "auth !== null && auth.provider === 'password'",
"username": {".validate": "!root.child('users').child(newData.child('username').val()).exists()"}
}
}
}
}
Dziękuję bardzo za pomoc
Więc chcesz zasady Firebase być sprawdzone na kliencie z systemem Android? –
Tak, chcę najpierw sprawdzić, czy nazwa użytkownika zostanie podjęta, jeśli baza ogniowa powie mi, że nie, a następnie utworzyć konto, w przeciwnym razie po prostu poproś użytkownika o wybranie innej nazwy użytkownika – FloGz
Oprócz odpowiedzi na pytanie dotyczące struktury danych i reguł bezpieczeństwa, oto kilka pytań, na których temat został zostały już wcześniej omówione: http://stackoverflow.com/questions/29970681/enforcing-unique-usernames-with-firebase-simplelogin, http://stackoverflow.com/questions/25294478/how-do-you-prevent-duplicate- user-properties-in-firebase, http://stackoverflow.com/questions/15910165/usernames-with-firebase-simple-login-email-password, http://stackoverflow.com/questions/20260476/what-firebase- reguła-zapobiegnie-duplikuje-w-kolekcji-na-innych-polach –