Firebase - 禁用“离线”模式并使“update()”抛出网络异常?

Mur*_*uza 2 javascript exception firebase react-native firebase-realtime-database

我用来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);
});
Run Code Online (Sandbox Code Playgroud)

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

问题:

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

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

Dou*_*son 5

实时数据库(和 Firestore)假设客户端通常已连接。缺乏连接被认为是暂时的问题。因此,SDK 将默默地重试连接,并且永远不会因缺乏连接而生成错误。您无法改变这种行为。

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