我在一个React Native应用中使用了firestore onSnapshot方法来处理应用中的几组不同的数据,大多数情况下它们都运行良好。然而,一段时间后,可能是应用进入后台并重新唤醒后,onSnapshot方法停止更新数据。就好像他们已经关机了,有时候他们似乎刚过一段时间就停止工作了,没有应用程序的后台。如果我再次调用这些方法,那么它们又开始工作了,但这似乎违背了使用它们的目的,我还不如使用普通的get()方法,并在需要时调用它们。肯定有其他人经历过这种情况,可以帮助吗?
omhiaaxx1#
当一个错误发生时,Firebase会调用(可选的)第二个回调函数,你可以把它传递给onSnapshot或一个简单的get函数。
onSnapshot
get
const coleccionRef = database.ref('test'); coleccionRef.on('value', snapshot => { snapshot.val(); }, error => { console.error(error); });
您可以检查该错误以了解出了什么问题。
oaxa6hgo2#
我在node上运行的脚本中使用onsnapshot作为firebase客户端时也遇到了同样的问题,我通过在一段时间间隔后或出现错误后重新调用onsnapshot来解决这个问题,在我的例子中是30分钟后。像这样(火线9):
let onSnapRemove; function onSnap() { onSnapRemove = onSnapshot(coll, { next: snap => { ... }, error: err => { console.log(err); onSnapRemove(); onSnap(); } }); } onSnap(); function repeat() { if (typeof onSnapRemove == 'function') onSnapRemove(); onSnap(); } setInterval(() => { repeat(); }, 1000 * 60 * 30);
2条答案
按热度按时间omhiaaxx1#
当一个错误发生时,Firebase会调用(可选的)第二个回调函数,你可以把它传递给
onSnapshot
或一个简单的get
函数。您可以检查该错误以了解出了什么问题。
oaxa6hgo2#
我在node上运行的脚本中使用onsnapshot作为firebase客户端时也遇到了同样的问题,我通过在一段时间间隔后或出现错误后重新调用onsnapshot来解决这个问题,在我的例子中是30分钟后。
像这样(火线9):