Firebase - 禁用'离线'模式和make' update()'扔网络异常?

时间:2018-06-03 13:34:10

标签: javascript firebase react-native firebase-realtime-database exception-handling

我正在使用update()设置帖子喜欢和喜欢计数。目前,update()在离线时会保留数据。

我想要的 - 当用户离线时,他们不应该喜欢这个帖子。应该显示相应的网络错误消息。

问题 - 只要用户上线,update()就不会抛出网络异常并将数据提交给服务器。

以下是我目前正在做的事情:

db.child(nodepath).update(fanoutObj).then((){
        console.log("Data saved successfully.");
}).catch(function(error) {
        console.log("Data could not be saved." + error);
});

catch在没有互联网的情况下永远不会被调用。

问题:

  1. 我可以禁用firebase离线模式,并在没有互联网连接的情况下让它在update()上抛出网络异常吗?

  2. 或者我应该在点击按钮时单独检查网络连接吗?

1 个答案:

答案 0 :(得分:2)

实时数据库(和Firestore)假设客户端通常是连接的。缺乏连接被认为是一个临时问题。因此,SDK将以静默方式重试连接,并且由于缺乏连接而永远不会生成错误。你无能为力改变这种行为。

相反,您可以使用云功能创建一个HTTP端点来调用它来执行数据库工作。如果您的HTTP客户端无法连接,则会生成错误。