Przechodzenie przez kod Lab Firebase Android pogawędkę - w https://codelabs.developers.google.com/codelabs/firebase-android/ - używam do problemu gdzie żaden z wywołania zwrotne są osiągnięty/wezwał do Krok 7: Czytaj Wiadomościoddzwaniania do FirebaseRecyclerAdapter nie działa
przechodzi/projektu android-start, jestem w stanie przejść przez pierwsze kroki 2-6:
- Przegląd
- Pobierz przykładowy kod
- importu t on rozrusznik aplikacja
- Tworzenie Firebase konsoli projekt
- Run rozrusznik aplikacja
- włączyć uwierzytelnianie (android app dodaje nazwą pakietu i SHA1 poprzez konsolę projektu, etc)
Jednak kiedy idę wykonać krok 7 - żaden z wywołań zwrotnych nie zostanie wywołany. Uruchamiam aplikację i działają kroki logowania/wylogowywania.
mam importowane initial_messages.json
zgodnie z instrukcjami tam i skopiowane kodu dokładnie do kroku 7 (kilka prób w celu upewnienia się, że nie może przegapić coś po drodze) .. a następnie próbował nawet w gotowy/androidowy projekt. Istnieje również ten sam problem, w którym callbacks nigdy nie są uruchamiane, więc spinner po prostu wisi.
Ponieważ jest tak dużo kodu, opublikuję sekcje, w których oczekuję uruchomienia wywołania zwrotnego. Czy ktoś może doradzić, czego tu brakuje? I nie ma problemu - jeśli to pomoże dodać więcej kodu, który mam. Dzięki za czytanie
// mProgressBar.setVisibility(ProgressBar.INVISIBLE);
// New child entries
mFirebaseDatabaseReference = FirebaseDatabase.getInstance().getReference();
SnapshotParser<FriendlyMessage> parser = new SnapshotParser<FriendlyMessage>() {
@Override
public FriendlyMessage parseSnapshot(DataSnapshot dataSnapshot) {
...
}
};
...
DatabaseReference messagesRef = mFirebaseDatabaseReference.child(MESSAGES_CHILD);
...
FirebaseRecyclerOptions<FriendlyMessage> options =
new FirebaseRecyclerOptions.Builder<FriendlyMessage>()
.setQuery(messagesRef, parser)
.build();
mFirebaseAdapter = new FirebaseRecyclerAdapter<FriendlyMessage, MessageViewHolder>(options) {
@Override
public MessageViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
...
}
@Override
protected void onBindViewHolder(final MessageViewHolder viewHolder,
int position,
FriendlyMessage friendlyMessage) {
....
}
};
mFirebaseAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
@Override
public void onItemRangeInserted(int positionStart, int itemCount) {
...
}
});
mMessageRecyclerView.setAdapter(mFirebaseAdapter);
Nie wiedziałem, że powinienem sprawdzać z jakimkolwiek przewodnikiem aktualizacji .. dobry wskaźnik tam, ponieważ nie widziałem tego w Kodzie Kodowym .. hmm? Cały ten kod Code Lab ... inaczej solidne ... po prostu 1 brakująca linia 'mFirebaseAdapter.startListening();' i nic z tego nie działa. Nie byłem pewien, czy powinienem to opublikować, sądząc, że przegapiłem coś oczywistego. Wiem, że powinniśmy unikać komentarzy z podziękowaniami - ale w tym przypadku naprawdę zrozumiałeś ważny problem; jak przypuszczam, wielu ludzi używa tych Code Labs ..zaoszczędziłem mój dzień na pewno (dziękuję) – gnB
Cieszę się, że mogę pomóc! Wiem, co masz na myśli, to mnie zaskoczyło na początku tego tygodnia i nie mogłem uwierzyć, że to było lekarstwo! Jest to szczególnie dziwne, ponieważ nie pamiętam, że laboratorium kodu nawet wspomniało, że używa FirebaseUI. Podobnie, oni ostatnio [zaktualizowali zależności przykładowego kodu] (https://github.com/firebase/friendlychat-android/commit/a88cd214e5528e17fd3c234d83589d85872650e2), ale nie dodali tego bardzo ważnego wywołania metody! Wydaje mi się, że tak właśnie dzieje się, gdy biblioteki wprowadzają zmiany łamania. – Grimthorr