En passant par le Code Lab pour Firebase Android bienvenus chat - à https://codelabs.developers.google.com/codelabs/firebase-android/ - Je suis en cours d'exécution dans un problème où aucun des callbacks sont atteints/a appelé à l'étape 7: lire les messagesCallbacks pour FirebaseRecyclerAdapter ne fonctionne pas
en passant par le/projet android-départ, je suis en mesure de passer à travers les premières étapes: 2-6
- Aperçu
- obtenir le code échantillon
- importation t il démarreur application
- Créer Firebase console projet
- Lancez l'application de démarrage
- Activer l'authentification (app Android ajouté avec le nom du package et SHA1 via la console de projet, etc.)
Cependant, quand je vais pour faire l'étape 7 - aucun des callbacks là n'est appelé. Je cours l'application et les étapes d'entrée/sortie fonctionnent.
J'ai importé initial_messages.json
comme indiqué là-bas et copié sur le code exactement pour l'étape 7 (plusieurs tentatives dans un effort pour faire en sorte peut-être que je ne l'ai pas raté quelque chose le long du chemin) .. et même essayé dans la fini/projet android. Là aussi, le même problème où les callbacks ne sont jamais exécutés et donc le spinner se bloque juste là.
Puisqu'il y a tellement de code, je posterai les sections où je m'attends à ce que le rappel fonctionne. Quelqu'un peut-il s'il vous plaît conseiller sur ce que je pourrais manquer ici? Et pas de problème - si cela vous aidera à ajouter plus de code que j'ai. Merci d'avoir lu
// 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);
Je ne savais pas que je devrais vérifier avec un guide de mise à niveau .. bon pointeur là, comme je ne l'ai pas vu mentionné dans le Code Lab .. hmm? Tout ce code Code Lab .. autrement solide .. simplement cette 1 ligne manquante 'mFirebaseAdapter.startListening();' et tout cela ne fonctionnait pas. Je n'étais pas sûr si je devrais même poster ceci, pensant que j'ai dû manquer quelque chose d'évident. Je sais que nous sommes censés éviter les commentaires de remerciements - mais dans ce cas, vous avez vraiment saisi un problème important, je pense; comme je devine que beaucoup de gens utilisent ces Code Labs ..sauvé ma journée à coup sûr (merci) – gnB
Content de pouvoir aider! Je sais ce que tu veux dire, il m'a attrapé plus tôt cette semaine et je ne pouvais pas croire que c'était le remède! Ceci est particulièrement étrange cependant parce que je ne me souviens pas du laboratoire de code, mentionnant même qu'il utilise FirebaseUI. De même, ils ont récemment [mis à jour les dépendances de l'exemple de code] (https://github.com/firebase/friendlychat-android/commit/a88cd214e5528e17fd3c234d83589d85872650e2) mais n'a pas ajouté cet appel de méthode très important! Je suppose que c'est ce qui se passe quand les bibliothèques font des changements brisants. – Grimthorr