1
コード以下はすべて必要な作業を行ったようですが、recyclerviewはまだ読み込まれていません。Recyclerviewに何も表示されていませんか? FirestoreUI RecyclerAdapterの使用
Log OnDateChangeを呼び出して、それが呼び出されたかどうかを確認し、Galaxy S6で実行した後にLogCatで一度呼び出されました。また、データベースは公開されています。
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());
}
私たちはそれを持っているので、この時点でどのような問題が起こっているのか分かりません。私は最新のFirestore UI依存関係も使用しています。
ああ、私はそれを行いました。私は、それと、recyclerOptionsのLifecycleOwnerメソッドと同じ問題を試しました。 –
@BaldricNguena setContentViewがグローバル変数として宣言しても、setContentViewの前にそれらを初期化しないと、コレクション参照とクエリとfirestore.getinstanceを試して移動しようとしました –
私はそれを理解しましたが、query = reference.orderBy( "timestamp" ); –