Firebase base64是编码Firestore自定义文档ID的好选项吗?

Firebase base64是编码Firestore自定义文档ID的好选项吗?,firebase,firebase-authentication,google-cloud-firestore,Firebase,Firebase Authentication,Google Cloud Firestore,我正在firebase应用程序中创建一些用户,我想提供自定义用户ID,因为他们正在使用外部服务进行身份验证 例如,我的用户ID生成由以下两部分组成: AuthService:AuthServiceUsername 这在现实中可能看起来像: Instragram:dimitrioskanellopoulos 但我不喜欢将此字符串用作用户id,因此我将其编码为base64,如下所示: const uid = Buffer.from(`instagram:${serviceUserID}`).

我正在firebase应用程序中创建一些用户,我想提供自定义用户ID,因为他们正在使用外部服务进行身份验证

例如,我的用户ID生成由以下两部分组成:

AuthService:AuthServiceUsername
这在现实中可能看起来像:

Instragram:dimitrioskanellopoulos
但我不喜欢将此字符串用作用户id,因此我将其编码为base64,如下所示:

  const uid = Buffer.from(`instagram:${serviceUserID}`).toString('base64');

我这样做有风险吗?base64是否也可以用于查询参数

Firestore文档ID在允许和不允许的方面都非常灵活。看


但是base64实际上并不安全,因为它包含
/
,这在Firestore文档ID中是不允许的Firestore文档ID在允许和不允许的方面非常灵活。看


但是base64实际上并不安全,因为它包含
/
,这在Firestore文档id中是不允许的

base64是一种任何人都可以理解的基本编码,我所做的是使用node bcrypt或使用multi-base64编码base64 2-3次“但我不喜欢将此字符串用作用户id”为什么不呢?Firebase身份验证UID不是秘密,只是一个标识符。它明确表示用于标识该用户。请看,@FrankvanPuffelen我确实理解这一点,但我希望避免使用与firestore接受的UID不兼容的服务字符串。这是一种边缘情况,但这取决于我对其进行身份验证的服务,而不是我自己。@Jimmy这就是我在前面的评论中所说的,你真的需要编码吗?Base64是一种任何人都可以理解的基本编码,我所做的是使用node bcrypt或使用multi Base64编码Base64 2-3次“但我不喜欢将此字符串用作用户id为什么不呢?Firebase身份验证UID不是秘密,只是一个标识符。它明确表示用于标识该用户。请看,@FrankvanPuffelen我确实理解这一点,但我希望避免使用与firestore接受的UID不兼容的服务字符串。这是一个边缘案例,但这取决于我的身份验证所针对的服务,而不是我自己。@Jimmy这就是我在前面的评论中说的,你真的需要编码吗?谢谢我删除了我的答案,因为它只是你的话:-)谢谢我删除了我的答案,因为它只是你的话:-)