Firebase UID是否自动生成?注册调用setUid后登录调用getUid能否取相同值
Firebase UID 常见问题解答
问题1:用户首次注册账号时调用.setUid()方法,Firebase中的UID是否会自动创建?
首先明确:Firebase Authentication 官方Android SDK 没有提供公开的.setUid()方法供开发者主动设置UID,UID是Firebase Auth服务端在用户注册成功时自动生成的全局唯一值,无需开发者主动调用方法设置。
当你通过createUserWithEmailAndPassword、手机号注册、第三方账号关联等任意注册流程完成账号创建后,返回的FirebaseUser实例会自动携带服务端生成的UID。如果你提到的.setUid()是自行封装的、用于将UID存储到本地/云数据库的自定义方法,存储的就是服务端生成的这个唯一UID。
问题2:登录该用户账号后调用.getUid()方法,能否取回与注册时一致的UID?
可以。同一个Firebase账号的UID是永久绑定的,只要你登录的是同一账号,调用FirebaseAuth.getInstance().currentUser?.uid(也就是你提到的.getUid()方法)拿到的UID和注册时生成的UID完全一致,除非你主动在Firebase控制台删除该账号,否则该UID不会发生变更。
Kotlin 代码示例
// 邮箱密码注册示例 val auth = FirebaseAuth.getInstance() auth.createUserWithEmailAndPassword(userEmail, userPwd) .addOnCompleteListener { task -> if (task.isSuccessful) { // 注册成功,获取服务端自动生成的UID val registerUid = auth.currentUser?.uid } } // 登录后获取UID示例 auth.signInWithEmailAndPassword(userEmail, userPwd) .addOnCompleteListener { task -> if (task.isSuccessful) { // 此处获取的UID与注册时生成的UID完全一致 val loginUid = auth.currentUser?.uid } }
内容的提问来源于stack exchange,提问作者Irul Atip
相关产品推荐
相关产品推荐

