gpt4 book ai didi

firebase - 使用 Firebase 通过 OAuth2 创建登录名时指定 UserId 格式

转载 作者:行者123 更新时间:2023-12-05 07:06:14 24 4
gpt4 key购买 nike

也许 Firebase 给了我足够的绳子让我上吊。

通过提供的电子邮件和密码创建用户时,我还可以提供 user_id。

太棒了。由于我数据库中的大部分主键都是 uuid/guid,我认为将用户表中的 user_id 设为 uuid pk 会更好。

成功了。

直到我让用户通过第三方进行身份验证。 Firebase 回来创建了我可爱的用户。使用 Firebase UserId。

这不是 uuid。

现在我发现自己考虑必须将数据库中的 userId 字段重新设计回文本类型,因为 Firebase UserId 不是 uuid。

有没有办法告诉 Firebase 将所有 user_id 值设为 guids?我查了一下,但在使用 OAuth2 告诉 Firebase 时我没有看到选项,“当你回来找用户时,请将该 user_id 设置为 uuid/guid,请...”

编辑:可能我没说清楚。我曾经/正在使用 Firebase UID 作为我的 pk,而不是,例如,用户的电子邮件地址。但是,如果我只能在提供电子邮件/密码来创建用户时(而不是在通过第 3 方 OAuth2 进行身份验证时)控制该 UID 的值/格式,那么我就无法采用我的首选格式。

第二次编辑:

通过电子邮件/密码创建用户时,我是通过 Firebase Admin SDK 这样做的。浏览器将电子邮件/密码传递给 API,然后 API 创建用户——完全控制 UID。

private async Task<UserRecord> AddFirebaseLogin(UserForCreation userForCreation)
{
UserRecordArgs args = new UserRecordArgs()
{
Uid = Guid.NewGuid().ToString(),
...

但是,当浏览器重定向到第 3 方 OAuth 时,UID 已经返回到身份验证 token 中,我想我已经错过了说出我希望 UID 的格式的机会。

let provider = new firebase.auth.OAuthProvider('microsoft.com');
...
return this.afAuth.auth
.signInWithPopup(provider)
.then((res) => {
this.ngZone.run(() => {
const userData = {
uid: res.user.uid,
...

我认为,如果在任何其他身份验证方法中都没有这种级别的控制,那么在一种情况下直接创建用户时拥有设置 UID 的特权的值(value)很小。

当我使用电子邮件/密码自己创建用户时获得的自由运行时,我所做的只是让自己心痛。

也许我遗漏了什么。

最佳答案

无法控制来自 Firebase 身份验证的 UID 的内容或格式。它生成唯一的字符串,它们需要按原样被接受。您可以确定它们在您的项目中是唯一的,并且可以安全地用作数据库中的主键。

关于firebase - 使用 Firebase 通过 OAuth2 创建登录名时指定 UserId 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62556801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com