Der Code unten Ich habe anscheinend alles getan, aber die Recyclerview wird gerade nicht ausgefüllt.Recyclerview zeigt nichts, irgendwelche Ideen? Verwenden von FirestoreUI RecyclerAdapter
Ich habe sogar das Log OnDateChange, um zu sehen, ob es angerufen wird, und es wurde einmal auf dem LogCat aufgerufen, nachdem ich es auf meinem Galaxy S6 ausgeführt habe. Außerdem ist die Datenbank öffentlich. So
RecyclerView chat_view;
EditText message_text;
CollectionReference reference = FirebaseFirestore.getInstance().collection("stage2");
Query query = reference.orderBy("timestamp");
FirestoreRecyclerAdapter<ChatMessage,ChatHolder> adapter=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chat);
//initializing, called below
init();
}
private FirestoreRecyclerAdapter<ChatMessage,ChatHolder> newAdapter() {
final FirestoreRecyclerOptions options = new FirestoreRecyclerOptions.Builder<ChatMessage>()
.setQuery(query,ChatMessage.class)
.setLifecycleOwner(this)
.build();
return new FirestoreRecyclerAdapter<ChatMessage, ChatHolder>(options) {
@Override
public ChatHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.chat_item,parent,false);
//if(((ChatMessage)options.getSnapshots().getSnapshot(viewType)).)
return new ChatHolder(view);
}
@Override
protected void onBindViewHolder(ChatHolder holder, int position, ChatMessage model) {
//displaying the message and users into the recyclerview
holder.user_msg.setText(model.getMessage());
holder.user_date.setText(model.getDate());
holder.user_name.setText(model.getName());
}
@Override
public void onDataChanged() {
Log.d("TAG", "YESSIR");
}
@Override
public void onError(FirebaseFirestoreException e) {
super.onError(e);
}
};
}
private void init(){
chat_view = (RecyclerView) findViewById(R.id.chat_view);
chat_view.setVerticalScrollBarEnabled(true);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
chat_view.setLayoutManager(layoutManager);
adapter = newAdapter();
chat_view.setAdapter(adapter);
message_text = (EditText) findViewById(R.id.message_text);
message_text.setEnabled(appUtils.isSignedIn());
findViewById(R.id.send_button).setEnabled(appUtils.isSignedIn());
}
, da haben wir es, ich habe keine Ahnung, was das Problem an dieser Stelle sein könnte. Ich verwende auch die neueste Firestore-UI-Abhängigkeit.
Oh, ich habe das getan. Ich habe sowohl diese und die LifecycleOwner-Methode für RecyclerOptions und das gleiche Problem ausprobiert. –
@BaldricNguena versuchen und verschieben Sie Ihre CollectionReference und Abfrage und Ihre Firestore.GetInstance nach setContentView nur deklarieren sie als globale Variablen, aber initialisieren sie nicht vor setContentView –
Ich fand es heraus, dort Fehler bei der Abfrage = reference.orderBy ("timestamp"); –