javascript - Firebase - 禁用 'offline' 模式并使 'update()' 抛出网络异常?

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

我正在使用 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. 或者我应该在单击按钮时单独检查网络连接吗?

最佳答案

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

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

关于javascript - Firebase - 禁用 'offline' 模式并使 'update()' 抛出网络异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50666960/

相关文章:

javascript - mongodb 计算文档对

android - 我正在尝试获取对我的 Firebase 数据库子项的正确引用并在我的 RecyclerView 中设置值,但我遇到了一些问题

react-native - TouchableOpacity onPress() 不适用于 react-native-modal

react-native - 抽屉重新打开有时当改变屏幕

facebook - 此应用程序运行的环境不支持此操作。 "location.protocol"必须是 http 或 https

javascript - 如何向 "GraphQL schema language"中的字段添加说明

javascript - 为什么这个数组复制不能按预期工作?

javascript - javascript中的浏览器检测

firebase - 如何消除实时数据库Firebase抖动中的自动生成的 key

javascript - 使用 Angular http 从 firebase 实时数据库获取数据