同时数组列表

时间:2018-12-20 16:01:15

标签: java android sqlite firebase firebase-realtime-database

Firebase

FirebaseRecyclerOptions<SQLiteHelper> options =
        new FirebaseRecyclerOptions.Builder<SQLiteHelper>()
                .setQuery(mFetchingMessages, SQLiteHelper.class)
                .build();

final MainData mHelper = new MainData(this);
final Cursor csr = myDBHlpr.getAllQuestions3();
firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<SQLiteHelper, Chat.MessagesViewHolder>(options) {

    @Override
    protected void onBindViewHolder(@NonNull final Chat.MessagesViewHolder holder, final int position, @NonNull final SQLiteHelper model) {

        final DatabaseReference mTimeReference = FirebaseDatabase.getInstance().getReference().child("Messages").child(MessageSenderId).child(MessageRecieverId);
        Query messageQuery = mTimeReference.limitToLast(10);

        messageQuery.addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {

                for (DataSnapshot ds : dataSnapshot.getChildren()) {
                    SQLiteHelper message = dataSnapshot.getValue(SQLiteHelper.class);


                            }

                            @Override
                            public void onChildChanged(DataSnapshot dataSnapshot, String s) {

                            }

                            @Override
                            public void onChildRemoved(DataSnapshot dataSnapshot) {

                            }

                            @Override
                            public void onChildMoved(DataSnapshot dataSnapshot, String s) {

                            }

                            @Override
                            public void onCancelled(DatabaseError databaseError) {

                            }
                        });



                    messages.add(message);
                }
            }


            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {
            }

            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {
            }

            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });

 @Override
    public Chat.MessagesViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.custom_activity_chat, parent, false);
        return new Chat.MessagesViewHolder(view);
    }
};
messageList.setAdapter(firebaseRecyclerAdapter);
firebaseRecyclerAdapter.startListening();

SQLite

while (csr.moveToNext()) {
    String mSender = csr.getString(csr.getColumnIndex(KEY_SENDER));
    String mMessage = csr.getString(csr.getColumnIndex(KEY_MESSAGE));
    long mTime = csr.getLong(csr.getColumnIndex(KEY_TIME));
    String mSeen = csr.getString(csr.getColumnIndex(KEY_SEEN));
    String mTimer = csr.getString(csr.getColumnIndex(KEY_TIMER));
    String mType = csr.getString(csr.getColumnIndex(KEY_TYPE));

    messages.add(new SQLiteHelper(mSender, mMessage, mType, mSeen, mTimer, mTime));
    mAdapter.notifyDataSetChanged();

当我既显示Firebase数据又显示或删除代码的Firebase部分时,在recyclerview中显示代码的sqlite部分。有人可以建议我以某种方式使firebase代码显示在sqlite代码下方吗?

0 个答案:

没有答案