Firebase:设置其他用户属性
IT技术
javascript
firebase-realtime-database
database-design
firebase-authentication
2021-01-13 15:23:00
2个回答
你快到了。在旧版 Firebase 文档中,我们有一节介绍了存储此类额外的用户数据。
关键是将附加信息存储在用户的uid
:
let newUser = [
"provider": authData.provider,
"displayName": authData.providerData["displayName"] as? NSString as? String
]
// Create a child path with a key set to the uid underneath the "users" node
// This creates a URL path like the following:
// - https://<YOUR-FIREBASE-APP>.firebaseio.com/users/<uid>
ref.childByAppendingPath("users")
.childByAppendingPath(authData.uid).setValue(newUser)
我已经添加了一个注释,我们也应该在新文档中添加这些信息。我们只需要为它找到一个好地方。
根据海关索赔文件,
Firebase Admin SDK 支持在用户帐户上定义自定义属性。[...] 可以为以下常见情况定义用户角色:
- 在用户上添加额外的标识符。例如,Firebase 用户可以映射到另一个系统中的不同 UID。
[...] 自定义声明负载不得超过 1000 字节。
但是,根据最佳实践,仅针对与身份验证相关的用户数据执行此操作,而不针对一般配置文件信息执行此操作:
自定义声明仅用于提供访问控制。它们并非旨在存储附加数据(例如配置文件和其他自定义数据)。虽然这似乎是一种方便的机制,但强烈建议不要这样做,因为这些声明存储在 ID 令牌中并且可能导致性能问题,因为所有经过身份验证的请求始终包含与登录用户对应的 Firebase ID 令牌。
使用自定义声明来存储仅用于控制用户访问的数据。所有其他数据应通过实时数据库或其他服务器端存储单独存储。
其它你可能感兴趣的问题