前提・実現したいこと
FirebaseとReactを用いてフォームに入力されたデータをDBに書き込む処理を実装しているのですが、
Firebaseのset()メソッドを用いてDBへの書き込みができません。
非同期部分の処理が怪しい気がするのですが、コンソールにエラーが表示されないため原因究明に難航しております。
該当するソースコードを提示いたしますので、原因わかりましたらご教示いただきたいです。
該当のソースコード
[データベースのルール]
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /users/{userId} { allow read: if request.auth.uid != null; allow create; allow update: if request.auth.uid == userId; allow delete: if request.auth.uid == userId; } } }
[書き込み処理]
import {db, auth, FirebaseTimestamp} from '../../firebase/index'; import {isValidEmailFormat, isValidRequiredInput} from "../../function/common"; const usersRef = db.collection('users') export const signUp = (username, email, password, confirmPassword) => { return async (dispatch) => { return auth.createUserWithEmailAndPassword(email, password) .then(result => { const user = result.user if (user) { const uid = user.uid const timestamp = FirebaseTimestamp.now(); const userInitialData = { created_at: timestamp, email: email, role: "customer", uid: uid, updated_at: timestamp, username: username }; console.log(usersRef.doc(uid)); // ここのログはきちんと出力される usersRef.doc(uid).set(userInitialData).then(async () => { // この中の処理に入らない dispatch(push('/')) }) } }) }