前提・実現したいこと
- Firebase初心者です。過去質問で具体的なコードを発見できなかったため質問させて頂きます。よろしくお願いします。
- 前提:Vue.js + Firebaseでwebアプリケーションを作成しており、その中でユーザ登録の仕組みを構築中です。Firebase auth のメール登録を利用します。
- 実現したいこと:アプリケーション中で各ユーザが持つデータはFirestoreで管理したいと思っています。今後の利便性確保のため、初回登録時にauth側で設定されるユーザidをidとして、usersコレクションに新規ドキュメントを作成したいと考えています。
発生している問題・エラーメッセージ
- Firebase auth は成功しますが、その後にドキュメント作成が実行できません。とくにエラーメッセージも発生しておらず解析ができていません。
該当のソースコード
javascript
1methods: { 2 register: function(){ 3 firebase.auth().createUserWithEmailAndPassword(this.user_mail, this.user_password) 4 .then(function(){ 5 db.collection('users').doc(firebase.auth().currentUser.uid).set({ 6 displayName: "Test", 7 }) 8 }) 9 .catch(function(error){ 10 console.log('something goes wrong on auth: ',error) 11 }) 12 } 13}
.setのあとに.catch(function(error))もつけていましたが、エラーコードが出てこなかったためいったん削除しております。
試したこと
- .setがうまく機能していないか確認するために、別メソッドで単純にsetを行ってみました。こちらは成功しました。
javascript
1methods: { 2 test: function(){ 3 db.collection('users').doc('new_user').set({ 4 displayName: "Test", 5 }) 6 } 7}
- createUserWithEmailAndPassword().then() の then()内部が実行されていないのか?と考えて、下記の通り実行してみたところ正しくuidが出力されました。
javascript
1methods: { 2 register: function(){ 3 firebase.auth().createUserWithEmailAndPassword(this.user_mail, this.user_password) 4 .then(function(){ 5 let uid_ = firebase.auth().currentUser.uid 6 console.log(uid) 7 }) 8 .catch(function(error){ 9 console.log('something goes wrong on auth: ',error) 10 }) 11 } 12}
補足情報(FW/ツールのバージョンなど)
vue cli 4.4.0
あなたの回答
tips
プレビュー