Не удалось получить данные чата из базы Firebase в RecyclerView - PullRequest
0 голосов
/ 04 декабря 2018

Я новичок в android studio и firebase и сейчас пытаюсь создать простое приложение для чата.

Мой код может отправлять данные чата в firebase, но не удалось получить данные обратно из firebase, поэтому ничего не обновленов приложении.

Примечание: сбоя нет, просто при наборе чата на экране ничего не появляется.

enter image description here

Может кто-нибудьуказать, где я ошибаюсь?

Вот мой код

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);

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...