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

a.t*_*aby 0 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!
Run Code Online (Sandbox Code Playgroud)

Fra*_*len 5

add()一旦在服务器上完成(或拒绝)写操作,写方法(例如)将返回一个承诺。由于您未连接到服务器,因此永远不会发生,因此您await将保持阻塞状态。

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