Редактирование электронной почты firestore vue

#javascript #vue.js #google-cloud-firestore #firebase-authentication

# #javascript #vue.js #google-облако-firestore #firebase-аутентификация

Вопрос:

У меня проблема с редактированием поля «электронная почта». Когда я нажимаю «Изменить почту», электронное письмо изменяется правильно, но когда я хочу снова войти в систему, новое электронное письмо не работает, работает только старое. Как сделать так, чтобы после нажатия на изменение электронной почты оно менялось в базе данных, чтобы после повторного входа в систему новое электронное письмо работало. Я не знаю, как это сделать. У меня есть этот код.

 <template>
    <div class="editemail">
        <div class="container">
            <form class="form" @submit.prevent>
                <!-- email -->
                <label for="email" class="form__label">Email</label>
                <input
                    class="form__input"
                    type="text"
                    id="email"
                    name="email"
                    :placeholder="userProfile.email"
                    v-model.trim="email"
                />

                <button class="form__button" type="submit" @click="editEmail()">
                    Zmień email
                </button>
            </form>
        </div>
    </div>
</template>

<script>
import { mapState } from 'vuex';
import * as firebase from '../firebase';

export default {
    data() {
        return {
            email: '',
        };
    },

    computed: {
        ...mapState(['userProfile']),
    },

    methods: {
        editEmail() {
            firebase.usersCollection.doc(firebase.auth.currentUser.uid).update({
                email: this.email,
            });
        },
    },
};
</script>

 

Ответ №1:

Если вы используете аутентификацию Firebase для входа пользователя, то используемый им адрес электронной почты не имеет ничего общего со значением, которое вы храните в базе данных.

Чтобы обновить адрес электронной почты, который Firebase использует для входа, вам также потребуется позвонить firebase.auth().currentUser.updateEmail(this.email) , чтобы обновить адрес электронной почты пользователя.