前提・実現したいこと
ReactNative,expo,firestoreを用いて開発をしています。
当方、プログラミング初心者で基礎からわかっていない部分も多く、質問内容以外にもご指摘いただけたら幸いです。
さて、この度firebaseのfirestoreから非同期にデータを取り出し、配列で返す関数を作りたいのですが、うまくいきません。
通信には成功していると思うのですが、resultsがうまく返りません。
また、非同期処理の記述にも自信がありません。
該当のソースコードは以下でございます。
該当のソースコード
import firebase from 'firebase';
import 'firebase/firestore';
export const getColumns = () => {
const db = firebase.firestore();
let columns = null;
try { db.collection("columns").onSnapshot(async (snapshot) => { await Promise.all(snapshot.docs.map((doc) => { let title = doc.get('title').replaceAll('\n', '\n'); return { id: doc.get('id'), title: title, content: doc.get('content') }; })).then(results => { columns = results; }).catch(reject => { console.log(reject); }); }) return columns; } catch ({ message }) { console.log(`データを取得できませんでした ${message}`); }
}
結果
nullが返ります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。