解決したいこと
クライアントからFirestoreにアクセスする場合、以下の方法を考えています。
1. キャッシュが古くなかったらキャッシュ読み込み 2. キャッシュが古かったらFirestoreに問い合わせ 3. オフラインならキャッシュ読み込み 4. キャッシュが利用不可ならFirestoreに問い合わせ 5. キャッシュ利用不可 かつ オフラインなら エラー?
5についてなのですが、
firebaseのsdkの関数がオフラインの場合、例外を発出しないため、エラーを補足できていません。。。
5のケースにどのように対応すれば良いか悩んでおります。
# 実施したこと
以下のような関数を書いてます。
js
1fetchDocument = async( 2 id : String, 3 getOptions: Object = { source: 'cache' } 4) => { 5 let document; 6 7 try { 8 document = await this.collection 9 .doc(id) 10 .get(getOptions) 11 .then((res) => res.data()); 12 } catch (error) { 13 if(error.code === 'unavailable') { 14 return await this.fetchDocument(id, {source: 'server'}); 15 } 16 throw error; 17 } 18}
アドバイスいただけますでしょうか
よろしくお願いいたします。
あなたの回答
tips
プレビュー