gpt4 book ai didi

java - removeEventListener() 不是 Firebase Firestore 的一部分吗?

转载 作者:行者123 更新时间:2023-12-02 14:05:15 25 4
gpt4 key购买 nike

我在 onPause() 方法中收到错误消息:

无法解析方法“removeEventListener(com.google.firebase.database.ValueEventListener)”

我想我在尝试转换时可能犯了一些错误 this tutorial (应用程序显示消息的接收者是否已看到该消息)从 Firebase 实时数据库到 Firebase Firestore。

ValueEventListener 的声明发生在 onCreate() 方法之前

ValueEventListener seenListener;

seenMessage()方法

private void seenMessage(final String recipientId){
final CollectionReference reference = FirebaseFirestore.getInstance().collection("chats");
seenListener = (ValueEventListener) reference.addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot documentSnapshots, @Nullable FirebaseFirestoreException e) {
if(documentSnapshots!=null){
for(QueryDocumentSnapshot queryDocumentSnapshots : documentSnapshots){
Chat chat = queryDocumentSnapshots.toObject(Chat.class);
if (chat.getReceiver().equals(userId) && chat.getSender().equals(recipientId)){
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("isseen", true);
reference.add(hashMap);
}
}
}
}
});
}

onPause()方法

@Override
protected void onPause() {
super.onPause();
FirebaseFirestore.getInstance().collection("chats").removeEventListener(seenListener);
}

最佳答案

Is removeEventListener() is not a part of Firebase Firestore?

不,不是。以下代码行:

reference.addSnapshotListener(new EventListener<QuerySnapshot>() {/* ... */}

返回ListenerRegistration对象,并且在 Java 中没有任何方法可以将这种类型的对象转换为 ValueEventListener目的。 ValueEventListener 是 Firebase 实时数据库的一部分,而 Cloud Firestore 是完全不同的产品。

正如我在您的代码中看到的,您正在使用 Cloud Firestore。如果您想删除监听器,请参阅我在以下帖子中的回答:

关于java - removeEventListener() 不是 Firebase Firestore 的一部分吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59683065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com