Я новичок в android studio и firebase и сейчас пытаюсь создать простое приложение для чата.
Мой код может отправлять данные чата в firebase, но не удалось получить данные обратно из firebase, поэтому ничего не обновленов приложении.
Примечание: сбоя нет, просто при наборе чата на экране ничего не появляется.
![enter image description here](https://i.stack.imgur.com/1c2bP.png)
Может кто-нибудьуказать, где я ошибаюсь?
Вот мой код
MainActivity
public class MainActivity extends AppCompatActivity {
RecyclerView recyclerView;
EditText editText;
RelativeLayout addBtn;
DatabaseReference ref;
FirebaseRecyclerAdapter<ChatMessage,chat_rec> adapter;
FirebaseRecyclerOptions<ChatMessage> options;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView)findViewById(R.id.recyclerView);
editText = (EditText)findViewById(R.id.editText);
addBtn = (RelativeLayout)findViewById(R.id.addBtn);
recyclerView.setHasFixedSize(true);
final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(linearLayoutManager);
ref = FirebaseDatabase.getInstance().getReference();
ref.keepSynced(true);
addBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String message = editText.getText().toString().trim();
if (!message.equals("")) {
ChatMessage chatMessage = new ChatMessage(message, "user");
ref.child("chat").push().setValue(chatMessage);
}
editText.setText("");
}
});
Query text = ref.child("chat").limitToLast(100);
options = new FirebaseRecyclerOptions.Builder<ChatMessage>().setQuery(text, ChatMessage.class).build();
adapter = new FirebaseRecyclerAdapter<ChatMessage, chat_rec>(options) {
@Override
protected void onBindViewHolder(chat_rec viewHolder, int position, ChatMessage model) {
// Bind the Chat object to the ChatHolder
// ...
if (model.getMsgUser().equals("user")) {
viewHolder.rightText.setText(model.getMsgText());
viewHolder.rightText.setVisibility(View.VISIBLE);
viewHolder.leftText.setVisibility(View.GONE);
}
else {
viewHolder.leftText.setText(model.getMsgText());
viewHolder.rightText.setVisibility(View.GONE);
viewHolder.leftText.setVisibility(View.VISIBLE);
}
}
@Override
public chat_rec onCreateViewHolder(ViewGroup parent, int viewType) {
// Create a new instance of the ViewHolder, in this case we are using a custom
// layout called R.layout.message for each item
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.msglist, parent, false);
return new chat_rec(view);
}
};
recyclerView.setAdapter(adapter);
}
}
chat_rec.java
Public class chat_rec extends RecyclerView.ViewHolder {
TextView leftText,rightText;
public chat_rec(View itemView){
super(itemView);
leftText = (TextView)itemView.findViewById(R.id.leftText);
rightText = (TextView)itemView.findViewById(R.id.rightText);
}
}