Tło:observeSingleEvent (z: o :) ściągam stare dane
Mam app gdzie nowi użytkownicy wypełnić formularz rejestracji w górę (na które składają się podając nazwę użytkownika, adres e-mail i hasło), aby założyć konto. Gdy nowy użytkownik przesyła formularz, aplikacja sprawdza bazę danych Firebase, aby sprawdzić, czy nazwa użytkownika została już pobrana. Problem polega na tym, że observeSingleEvent(of:with:)
nie otrzymuje najnowszych danych. Gdy aktualizuję dane bezpośrednio z konsoli Firebase, zmiany nie są odzwierciedlane w zwracanych wynikach observeSingleEvent(of:with:)
. Nawet między kolejnymi uruchomieniami aplikacji nowe zmiany danych nie są zwracane.
Jedyne, co widziałem w tej sprawie to here. Użytkownik twierdzi, że nie ma włączonej trwałości podczas używania observeSingleEvent(of:with:)
. Ale mam uporczywe upośledzenie. Ponadto ustawiam keepSynced()
na instancji FIRDatabase
na wartość false (i próbowałem również prawdy). Nie ma szczęścia przy obu ustawieniach.
Oto przykład tego, co usiłuję:
let usersDatabaseReference = FIRDatabase.database().reference().child("users")
usersDatabaseReference.keepSynced(false)
// Query the database to see if the username is available
// The user with the username "mark" was removed from the database via the Firebase console
let username = "mark" // This user used to exist in the database (and was previously added through the app).
usersDatabaseReference.child(username).observeSingleEvent(of: .value, with: { (snapshot) in ... })
Powyższy fragment kodu powinien zwrócić najnowsze dane (jeden gdzie użytkownik „znak” nie powinien istnieć).
Zastanawiam się, czy ktoś inny wpadł na ten problem, lub czy ktoś ma możliwe rozwiązania.
Uwaga: Rozwijanie użyciu iOS 10.1 i szybkie 3.
Już to zrobiłem. Obecnie w bazie danych znajduje się ścieżka użytkownika. Aby zidentyfikować użytkowników, używam ich nazw użytkowników. – hvasam