【发布时间】:2023-04-09 17:23:01
【问题描述】:
当时我有以下代码:
final DatabaseReference messagesRef = mFirebaseDatabaseReference.child("users/").child(firebase_user_uid + "/").child("chats/");
messagesRef.keepSynced(true);
FirebaseRecyclerOptions<ChatListMediation> options = new FirebaseRecyclerOptions.Builder<ChatListMediation>().setQuery(messagesRef, parser).build();
mFirebaseAdapter = new FirebaseRecyclerAdapter<ChatListMediation, MessageViewHolder>(options) {
@Override
public MessageViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
final int layout = viewType == TYPE_INACTIVE ? R.layout.item_chatlist : R.layout.item_chatlist_selected;
View view = LayoutInflater.from(viewGroup.getContext()).inflate(layout, viewGroup, false);
return new MessageViewHolder(view);
}
@Override
protected void onBindViewHolder(final MessageViewHolder viewHolder, int position, final ChatListMediation chatListMediation) {
viewHolder.chatKey = chatListMediation.getChatkey();
}
};
所以,我们开始吧。我为以下FirebasedatabseReference:users/firebase_user_uid/chats 设置的 FirebaseRecyclerAdapter。所以在这里我得到了一个聊天键列表。但现在我需要一些进入FirebaseDatabseReference“chats/chat_key”并在那里阅读信息的人。例如 "chattype" 或 "createdTime" 。起初,我有很多 addValueEventListener 用于我想要的不同的东西,但我认为那不是最好的最快的方法。也许第二个FirebaseReycyclerAdapter?或者我可以在运行时切换FirebaseRecyclerAdapter 的 FirebaseDatabseReference 吗?我不知道该解决谁。
我希望你能理解我的问题并能帮助我。如果您有任何问题,请告诉我。
提前致谢。
【问题讨论】:
标签: android firebase firebase-realtime-database android-recyclerview firebaseui