13

最近、アプリを firebase から firestore に更新しましたが、オフラインの永続化でスタックしました。私は react-native-firebase を使用してfirestoreを統合し、その永続性を無効にしていますが、インターネットがない場合でもcatchエラーは発生しません。これはデータを削除するための私のコードですが、インターネットが解決されていない場合、キャッチはエラーになりません。

firebase.firestore().collection('d').doc(deviceid).delete().then(function () {
                                    console.log("Device Deleted");
                                    that.setState({
                                        loading: false
                                    });
                                    Toast.show('Device Deleted Succesfully', {
                                        duration: Toast.durations.SHORT,
                                        position: Toast.positions.TOP,
                                        shadow: true,
                                        animation: true,
                                        hideOnPress: true,
                                        delay: 0,
                                    });

                                }).catch(function (err) {
                                    console.log(err);
                                    that.setState({
                                        loading: false
                                    });
                                })
4

3 に答える 3

17

ネットワーク接続がない場合、Firestore と Realtime Database SDK はエラーをスローしません。デバイスがすぐにネットワーク接続を回復することを期待して、サイレント モードで接続を再試行します。これは、ほとんどの開発者が、ユーザーがトンネルに入ってから戻った、またはネットワークのリセットを強制する方法でモバイル タワー間を切り替えたという理由だけで、アプリが壊れているように見せたくないためです。

オンライン データベースを効果的に利用するためには、デバイスはほとんどの時間オンラインである必要があり、これは SDK が最適化する状況です。

于 2018-05-26T13:46:44.170 に答える