Closed1

Firebase v9 Firestoreからログインしているユーザーの情報のみを取得する

CaaaaatsCaaaaats

https://firebase.google.com/docs/firestore/query-data/get-data#get_multiple_documents_from_a_collection
これを参考に実装


  import { db, auth } from 'src/lib/firebase/firebase';
  import { collection, getDocs, query, where } from 'firebase/firestore';


  const [currentUser, setCurrentUser] = useRecoilState(currentUserState);
  const user = auth.currentUser;
  const authUserCollectionRef = collection(db, 'users');
 //firestoreのユーザーuidがログインユーザーのuidと一致するものを検索する
  const q = query(authUserCollectionRef, where('uid', '==', user?.uid));

  // ログインユーザーのデータをfirestoreから取得する関数を定義
  const getAuthUserInfo = async () => {
    const querySnapshot = await getDocs(q); //検索済みのデータ取得
  // 一致するものをmapで処理しdataオブジェクトをコールバック
    querySnapshot.docs.map((doc) => {
      const data = doc.data();
      console.log(doc.id, ' => ', data);
      const { displayName, description, photoURL } = data;
      setCurrentUser({ displayName: displayName, description: description, photoURL: photoURL });
    });
  };

  useEffect(() => {
    getAuthUserInfo();
    // eslint-disable-next-line react-hooks/exhaustive-deps
  }, []);
このスクラップは2021/11/21にクローズされました