Firebaseに関する認証(メールアドレス、パスワード認証)及び、データの保存についてお聞きしたいです。
Firebaseを使用したユーザーの新規登録処理(SignUp)をfirebaseのドキュメンテーション通りに行うと、emailとパスワードは保存出来るのですが、それ以外のデータを一度のaxiosの処理で実装することが出来ません。
仮にその他にユーザー名と登録したユーザーに紐づくデータを保存したい場合は、合計で3回firebase
側とやりとりを行うこととなります。
以下が自分が実装を行いました新規登録処理部分になります。
async registerUserData (context, userData) { await axios.post('/accounts:signUp?key=[apikey]', { email: userData.email, password: userData.password, returnSecureToken: true } ).then(async response => { console.log(response) await axios.post('/accounts:update?key=[apikey]', { idToken: response.data.idToken, displayName: userData.userName, returnSecureToken: true } ).then(async response => { const uid = response.data.localId await axios.post('https://firestore.googleapis.com/v1/projects/vue-kadai/databases/(default)/documents/cities/user-data', { fields: { userId:{ stringValue: uid } wallet: { integerValue: 500 } } } } ).then(response => { console.log('hogehoge', response) }) const payload = { userName: userData.userName, email: userData.email } context.commit('saveUserData', payload) }).catch(error => { console.log('error', error) }) }).catch(error => { console.log('error', error) }) },
3回目のaxiosの送信でuid
をfirestore
に保存しているのは、wallet
データをユーザーと紐づけて取得可能にする為です。
しかし、どうも3回新規登録時に送受信を行うというのは少々時間がかかりすぎてしまうような気がします。
こちら、可能でしたら改善したいと考えているのですが、方法はありますでしょうか。
どなたか、ご助言頂けましたら幸いです。
あなたの回答
tips
プレビュー