前置き
firebase系の記事が増えてきました🌟🤗
ログインの記事は公開しているので
今度はアカウント作成部分を作ります!
この部分だけなら
5分もかからないと思います…笑
firebaseAuthを使えば本当にめちゃくちゃ簡単です💕
こちらは有料記事にて公開します🎈🧸
作成時にメールの送信
エラー別の対処
ここでは純粋に
アカウント作成のみを記載してます!
メールアドレスログイン記事のコードに
付け加えるように書いていきます✍️
おすすめ記事
Googleログイン
twitterログイン
facebookログイン
コードの付け足し
アカウント作成については公式のココ📌
firebase Guides
Create a password-based account
この関数を使うようですね👀
.createUserWithEmailAndPassword()
コード
) pages
まずは登録フォームを作り
それを引数で渡せるようにしましょう!
これはlogin.vueをほぼコピペして少し変更してます。
・dispatchで呼び出すactionsをregisterに変更
・全体のdivのclass名loginをregisterに変更
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
<template> <div class="register" > <h1 class="text" > アカウント登録 </h1> <form class="form" @submit.prevent > <label class="label"> <span class="label"> email </span> <input class="input" type="text" v-model="email" > </label> <label class="label"> <span class="label"> password </span> <input class="input" type="password" v-model="password" > </label> <button class="button" type="submit" @click="register" > Register </button> </form> <nuxt-link to="/login" class="link" > ログインはこちら </nuxt-link> </div> </template> <script> export default { computed: { user () { return this.$store.getters['user'] }, }, data () { return { email: '', password: '', } }, methods: { register () { this.$store.dispatch('register', {email: this.email, password: this.password}) } }, } </script> |
) file
Vuexのactionsにregisterを追加します🌟
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
import firebase from '~/plugins/firebase' export const state = () => ({ user: { uid: '', email: '', login: false, }, }) export const getters = { user: state => { return state.user } } export const actions = { login({ dispatch }, payload) { firebase.auth().signInWithEmailAndPassword(payload.email, payload.password) .then(user => { console.log('成功!') dispatch('checkLogin') $router.push('/') }).catch((error) => { alert(error) }) }, checkLogin ({ commit }) { firebase.auth().onAuthStateChanged(function (user) { if (user) { commit('getData', { uid: user.uid, email: user.email }) commit('switchLogin') } }) }, register ({ dispatch, commit }, payload) { firebase.auth().createUserWithEmailAndPassword(payload.email, payload.password) .then(user => { console.log(user) dispatch('checkLogin') }).catch(function (error) { console.log({'code':error.code, 'message':error.message}) }) }, } export const mutations = { getData (state, payload) { state.user.uid = payload.uid state.user.email = payload.email }, switchLogin (state) { state.user.login = true }, } |
Authenticationで確認
registerで登録をすると
firebaseのAuthenticationで
アカウントが作成されているのが
分かります🤗
簡単ですね🎉✨
ほぼコピペでいけちゃいますね🕶w
なんて楽なんでしょう…✨