1
코드 아래는 필요한 모든 작업을 수행 한 것처럼 보이지만, recyclerview는 채워지지 않고 있습니다.Recyclerview는 어떤 아이디어도 표시하지 않습니까? FirestoreUI RecyclerAdapter 사용하기
Log on 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 –
전에 오류가 발생했습니다. query = reference.orderBy ("timestamp") 오류가 발생했습니다.); –