首页 > 解决方案 > React-Native + Firebase:如何处理实时更新

问题描述

我正在使用 react native + firebase。每次有新文档时,我都需要更新我的文档列表。所以我找到了有关“实时更新”和使用“onSnapshot”的信息:

let items = [];

firebase.firestore().collection("docs").onSnapshot(function(results) {

            results.forEach((doc) => {
                const item = doc.data()
                if (item) {
                    items.push(item);
                }
              });


    }, function(error) {
       console.log(error)
    })

如果我返回一个值 onSnapshot 将只运行一次的想法是让它监听变化,我应该如何实现呢?

标签: javascriptreact-nativegoogle-cloud-firestore

解决方案


我了解到您正在使用 React Native Firebase 软件包 ( https://rnfirebase.io/ )

你是对的,有一个功能可以实时监听数据库的变化(例如,一个帖子的点赞数)。

在此处查看文档:Firestore 实时更改

这是文档中用于收听此类更改的建议代码:

function User({ userId }) {
  useEffect(() => {
    const subscriber = firestore()
      .collection('Users')
      .doc(userId)
      .onSnapshot(documentSnapshot => {
        console.log('User data: ', documentSnapshot.data());
      });

    // Stop listening for updates when no longer required
    return () => subscriber();
  }, [userId]);
}

根据我使用 React Native Firebase 的经验,实时更改效果很好。确保您的代码与官方文档中的说明一致,并且一切顺利。

希望能帮助到你。


推荐阅读