【问题标题】:How to replace the firebase UID with a variable?如何用变量替换firebase UID?
【发布时间】:2017-11-19 14:45:22
【问题描述】:

我正在尝试创建一个 ERP 类型的应用程序,在该应用程序中,经理将能够通过 GUI 将事物分配给数据库中的特定用户。因此,我想用名称变量替换firebase使用auth.createUserWithEmailAndPassword生成的随机UID,我在登录名中提供了一个名称输入,员工可以在其中输入他们的姓名。用此名称替换 UID 的最佳方法是什么?

我正在使用 React.js 这里是一些代码 sn-p:

我的 auth.js:

import { firebase } from '../firebase/firebase';


export const login = (uid) => ({
  type: 'LOGIN',
  uid
});

export const newUser = () => {
  const username = username.value;
  const pass = password.value;
  const auth = firebase.auth();

  const promise = auth.createUserWithEmailAndPassword(username, pass);
  promise.catch(e => console.log(e.message));
};

export const startLogin = (username, password) => {
  return () => {
  const username = username.value;
  const pass = password.value;
  const auth = firebase.auth();

  const promise = auth.signInWithEmailAndPassword(username, pass);
  promise.catch(e => console.log(e.message));
  };
};

export const logout = () => ({
  type: 'LOGOUT'
});

export const startLogout = () => {
  return () => {
    return firebase.auth().signOut();
  };
};
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

如果您需要帮助我,请告诉我。

谢谢。

【问题讨论】:

    标签: reactjs firebase firebase-authentication


    【解决方案1】:

    Firebase 身份验证用户有一个 display name,您可以考虑使用它。对于来自社交提供商的用户帐户,它是您在那里提供的名称。例如:如果 Firebase 身份验证支持 Stack Overflow 作为身份提供者,您的 UID 可能是 8603299,而您的显示名称将是“Bruce Evens”。

    有几点需要牢记:

    • 用户的显示名称不必是唯一的。任何人都可以说他们的名字是“Bruce Evens”。因此,虽然您可以使用名称作为友好的描述,但您不能使用名称来唯一地查找用户。如果您想确保唯一的用户名,您需要在某处保留映射。执行此操作的常见位置是 Firebase 实时数据库。有关示例,请参阅 these questions
    • 用户的显示名称可能会随着时间而改变。例如,我在 Stack Overflow 上一直是“puf”,但现在是“Frank van Puffelen”。这会导致潜在的问题:如果人们在问题/cmets 中将我标记为 @puf,而那是我的显示名称,那么该标签现在将不再与我的帐户相关联。为防止出现此类问题,您必须在用户更改其显示名称时更新所有引用。我已经介绍了here 的基本选项。

    【讨论】:

    • 我明白了。考虑到这是企业的内部应用程序,我不想使用除了没有显示名称的电子邮件和密码之外的任何登录名。我确实看到了映射的目的。我想我必须在 id 上设置一个 name 属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2021-05-03
    • 2018-09-09
    • 2016-06-05
    • 1970-01-01
    相关资源
    最近更新 更多