Mam aplikację, która po użyciu autoryzacji Firebase użytkownika zapisuje dane w bazie danych Firebase. Przed zapisaniem danych chcę sprawdzić, czy nazwa użytkownika, którą podał użytkownik, już istnieje w bazie danych. Więc jeśli nie istnieje, mogę dać użytkownikowi tę unikalną nazwę użytkownika (jak każdy użytkownik ma unikalną nazwę użytkownika). Mam więc textField
gdzie użytkownik wprowadza swoją nazwę użytkownika, a następnie naciśnij Dalej. Następnie aplikacja powinna sprawdzić, czy nazwa użytkownika istnieje, czy nie, i powiedzieć użytkownikowi, czy musi ją zmienić.Sprawdź, czy użytkownik istnieje z firebase 3.0 + swift
Więc kod użyłem, aby sprawdzić, czy nazwa użytkownika istnieje:
let databaseRef = FIRDatabase.database().reference()
databaseRef.child("Users").observeSingleEventOfType(.Value, withBlock: { (snapshot) in
if snapshot.hasChild(self.usernameTextField.text!){
print("user exist")
}else{
print("user doesn't exist")
}
})
Więc za każdym razem obok przycisku, kod ten jest tzw. Problem polega na tym, że wynik zawsze pozostaje taki sam jak pierwszego wyszukiwania (nawet po zmianie wartości textField). Na przykład, jeśli przeszukuję Jose, a Jose istnieje w mojej bazie danych, wydrukuje "użytkownik istnieje". Ale kiedy zmienię textField
na nazwę, która nie istnieje, nadal pokazuje "użytkownik istnieje".
Dobrze słyszeć, że znalazłeś błąd. Zapoznaj się także z tym pytaniem, aby uzyskać dodatkowe informacje, gdy użytkownicy mogą zgłaszać unikalną nazwę użytkownika: http://stackoverflow.com/questions/25294478/how-do-you-prevent-duplicate-user-properties-in-firebase –