Firebase React Native获取数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Firebase React Native获取数据相关的知识,希望对你有一定的参考价值。
我正在尝试使用feed做反应原生的应用程序。在我的主屏幕上,我去获取数据:
fetchData()
firebase.database().ref(`/posts/$group`).on('value', async snapshot => ...
当我想要例如喜欢帖子的评论时,我首先将数据推送到具有不同查询的firebase,例如:
export const likeComment = (...) =>
firebase.database().ref(`/posts/$group/$post`).update
(
updatedAt: firebase.database.ServerValue.TIMESTAMP
);
firebase.database().ref(`/posts/$group/$post/lastComments`).set(...);
但我意识到我的第一个函数fetchData被调用了3次。然后我将我的查询分组如下:
let updates =
updates[`/posts/$group/$post/lastComments`] = ...;
updates[`/posts/$group/$post`] = ... ;
firebase.database().ref().update(updates);
然后,fetchData仍然被调用了2次。
我想知道这是否是最好的方法,为什么我的函数fetchData仍被调用两次。谢谢你的帮助
从有限的代码中很难说,但我的猜测是fetchData
实际上并没有被多次调用,而是当你对Firebase数据库进行更新时,snapshot
会被激活。
代码的一部分,你说.on('value', async snapshot =>
你正在设置一个监听器,以便在值发生变化时随时向您发送更新。
所以我的猜测是你的三个调用是:
- 第一次实际调用fetchData并设置监听器
- 当你打电话给
.on( snapshot
时,你的update
听众开火 - 当你打电话给
.on( snapshot
时,你的set
听众再次开火
这种基于推送的数据库工作流程是Firebase的主要优势之一。如果您只想获取一次数据而不获取实时更新,则可以调用.once(
而不是.on(
https://firebase.google.com/docs/database/web/read-and-write
以上是关于Firebase React Native获取数据的主要内容,如果未能解决你的问题,请参考以下文章
无法从 React-Native-Firebase(v6) Firestore 获取数据:未定义不是函数(靠近 '...this._firestore.native.collectionGet...'
Firebase 实时数据库获取函数返回未定义(较新的 firebase 版本,2021) - 使用 React Native
登录 Firebase React Native Expo 后无法获取用户数据
Firebase React Native——如何获取和传输设备 ID/令牌?