前提・実現したいこと
現在、ReactNativeでスマホアプリを開発しています。
CloudFirestoreに保存してある画像パスを取得し、
Storage内の画像を表示させたいと考えています。
説明下手なところもありご不便おかけいたしますが、
有識者の方のご回答いただけると助かります。
発生している問題・エラーメッセージ
対象の画面を開いたところ以下の順でログが出力されており
想定される画像が表示できなくて困っています。
Array [] --1 Array [ "https://firebasestorage.googleapis.com/v0/b/...", "https://firebasestorage.googleapis.com/v0/b/...", "https://firebasestorage.googleapis.com/v0/b/...", "https://firebasestorage.googleapis.com/v0/b/...", ]
該当のソースコード
export default function Battle({ navigation }: any) { let karutas: any[] = []; /** Get Path */ async function getKarutasUrl() { await getKarutaInfo() .then((param) => { karutas = param.filter((val) => val); console.log(karutas); // 上記ログの空でないArray取得 -> 値取得OK }) .catch(({ err }: any) => console.log(err)); } getKarutasUrl(); console.log(karutas); // 上記ログの空Array取得 -> 値取得NG ・ ・ ・
export async function getKarutaInfo() { let result: string[] = []; await fireStore .collection("image_karutas") .get() .then((snapShot) => { snapShot.forEach((doc) => { const karuta = doc.data(); result.push(karuta.path); // console.log(result); }); }) .catch((error) => { console.log("Error:" + error); }); // console.log(result); return result; }
現状
Arrayへの設定をforEachとしてkarutas.push()にしたり、
FireStore内のデータ構造を変更したり、
JSの処理順序を色々変えたりしたのですが上手くいかず。。
補足情報(FW/ツールのバージョンなど)
- Node v12.18.3
- npm 6.14.6
- ReactNative sdk-38.0.2
- TypeScript 3.9.5
- Expo 3.24.0
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/30 14:31
2020/08/30 23:27