我离线时,Firestore添加方法无法正常工作

时间:2019-06-01 16:08:57

标签: android ios firebase react-native google-cloud-firestore

如果我的设备离线时运行以下代码,则card将被添加到本地缓存中。但是应用程序永远不会转到下一行。

const data = await firebase.firestore().collection('cards').add(card);
console.log(data) // this line never get executed!

1 个答案:

答案 0 :(得分:4)

写入方法(例如add())返回在服务器上完成(或拒绝)写入操作后将兑现的承诺。由于您未连接到服务器,因此永远不会发生,因此您的await将保持封锁状态。

请注意,本地写入操作不需要await,因为对本地缓存的写入是同步进行的。因此,一旦add(...)调用返回(并且不会引发异常),您可以确定对本地缓存的写入已完成。因此,仅在需要知道写入也由服务器处理的情况下才应使用await,在这种情况下,您看到的行为正是您想要的。