繁体   English   中英

Firebase onSnapshot限制下载

[英]Firebase onSnapshot limit download

我的应用程序上有一个 firestore 侦听器,它在将项目添加到数据库时下载它们。 第一次,它下载所有文档(我正在使用 onSnapshot),但我想将其限制为 12,因为我有一个 FlatList 在我滚动时呈现项目......

例如,如果有 +1000 个文档,我认为第一次下载所有项目将是一个问题。 我想过从听众转移到普通查询,但我需要它。

有任何想法吗?

 const unsuscribe = firebase
      .getDatabase()
      .collection("reviews")
      .doc(firebase.getCurrentUser().uid)
      .onSnapshot((snapshot) => {
        let changes = snapshot.docChanges();

        changes.forEach((change) => {
          if (change.type === "added") {
            // Stuff
          }
        });
        // More Stuff
      });

你可以使用限制功能吗?

 const unsuscribe = firebase
      .getDatabase()
      .collection("reviews")
      .doc(firebase.getCurrentUser().uid)
      .limit(12)
      .onSnapshot((snapshot) => {
        let changes = snapshot.docChanges();

        changes.forEach((change) => {
          if (change.type === "added") {
            // Stuff
          }
        });
        // More Stuff
      });

我能够重新利用@RossHochwerts 建议在我的查询中使用限制,如下所示:

useEffect(
    () => 
        onSnapshot(
            query(
                collection(db, 'matches', matchDetails.id, 'messages'),
                orderBy('timestamp', 'desc'),
                limit(1)
            ), snapshot => setLastMessage(snapshot.docs[0]?.data()?.message)
        ),
    [matchDetails, db]
);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM