【问题标题】:I want to be able to set a "name" for a user in Firebase when using .createUserWithEmailAndPassword我希望能够在使用 .createUserWithEmailAndPassword 时为 Firebase 中的用户设置“名称”
【发布时间】:2018-06-25 07:50:27
【问题描述】:

VueJS 与 Vuex 和 Firebase 一起让我可以轻松地在我的应用中注册用户,但我可以同时为该特定用户创建一个或多个数据库引用吗? 我可以从用户列表中设置和获取 user.email,但是在实际数据库中创建更多字段时我被卡住了。 你能帮我吗? 这是我的注册组件代码:

<template>
  <section class="section">
    <h1>Sign-up</h1>

            <h2>Create an Account</h2>
          </div>
          <div class="card-content">
            <form v-on:submit.prevent>
              <div class="field">
                <label class="label">Name</label>
                <div class="control">
                  <input class="input" type="text" placeholder="Your Display Name" v-model="name">
                </div>
              </div>
              <div class="field">
                <label class="label">Email</label>
                <div class="control">
                  <input class="input" type="email" placeholder="joe@bloggs.com" v-model="email">
                </div>
              </div>
              <div class="field">
                <label class="label">Password</label>
                <div class="control">
                  <input class="input" type="password" v-model="password">
                </div>
              </div>
              <button type="submit" class="button is-primary" v-on:click="signUp">Sign-up</button>
            </form>
            <p>Already registered? <router-link to="/Sign-In">Log in</router-link></p>

  </section>
</template>

<script>
import Firebase from "firebase";
export default {
  data: function() {
    return {
      name: "",
      email: "",
      password: ""
    };
  },
  methods: {
    signUp: function() {
      Firebase.auth()
        .createUserWithEmailAndPassword(this.email, this.password)
        .then(
          user => {
            this.$router.replace('dashboard');
          },
          error => {
            alert(error.message);
          }
        );
    }

  }
};
</script>

我假设我可以创建另一种方法,但我真的想让它尽可能简单。

【问题讨论】:

    标签: firebase vue.js firebase-authentication vuex vuefire


    【解决方案1】:

    您需要进行额外的 API 调用来设置用户的 displayName:

    firebase.auth()
        .createUserWithEmailAndPassword(this.email, this.password)
        .then(
          user => {
            return user.updateProfile({displayName: this.displayName});
          },
          error => {
            alert(error.message);
          }
        );
    

    【讨论】:

    • displayName 不是 Firebase 字段而不是自定义字段吗?
    • 是的。您不能通过updateProfile 设置自定义属性。
    猜你喜欢
    • 2020-07-02
    • 2023-03-11
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-20
    相关资源
    最近更新 更多