将快照侦听器添加到集合 Firestore

bar*_*ecu 8 performance android android-service firebase google-cloud-firestore

所以我对 firebase 有点陌生,我正在开发一个 android 应用程序。我想做的是:我想创建一个在后台运行的服务,它可以收听 firestore 中的整个集合(例如“消息”),一旦将文档添加到集合中,我想检查文档是否包含特定值,以及是否推送通知。伪代码概要:

   messages.attachlistener(onNewDocument(doc) -> {

      if(doc.getString(username) == my_username)
      {
          send_notification(doc.getString(message));
          cache_message_for_later();
          delete_doc_from_table();
       }
    };
Run Code Online (Sandbox Code Playgroud)

我的问题是:是否可以将侦听器附加到集合?我只在文档中找到了文档侦听器。如果可能的话,这样的监听器甚至是可行的性能明智的吗?(我的想法:这个服务会一直在后台运行,但是文档在缓存后会被删除,所以表大小不会太大,它可能会平衡?)

小智 0

我快速检查了我的代码以进行确认。

您可以执行这样的代码,没有问题:

val db = FirebaseFirestore.getInstance()
val query = db.collection("Quotes_historyfavorites").document(userId)
                .collection(FireBaseConstants.QuoteCollection.FAVORITE)
                .orderBy("Added", Query.Direction.DESCENDING)
Run Code Online (Sandbox Code Playgroud)

我不确定是否可以进行顶级收藏,但我相信在遇到性能问题之前您会先面临资金问题。