java - 在 FirebaseAuth android 中添加额外的个人资料信息
问题描述
我想向 FirebaseAuth 用户配置文件添加额外的配置文件信息,有一个如下所示的更新配置文件方法,我想添加额外的信息,例如:UserId,是否可以选择这样做?
val profileUpdates = UserProfileChangeRequest.Builder()
.setDisplayName(usernameEditText.text.toString())
.build()
解决方案
如果您在 Firebase 身份验证中创建了一个用户,那么您将获得以下信息:
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
for (UserInfo profile : user.getProviderData()) {
// Id of the provider (ex: google.com)
String providerId = profile.getProviderId();
// UID specific to the provider
String uid = profile.getUid();
// Name, email address, and profile photo Url
String name = profile.getDisplayName();
String email = profile.getEmail();
Uri photoUrl = profile.getPhotoUrl();
}
}
关于更新个人资料,您可以更新显示名称和照片网址:
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder()
.setDisplayName("Jane Q. User")
.setPhotoUri(Uri.parse("https://example.com/jane-q-user/profile.jpg"))
.build();
user.updateProfile(profileUpdates)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d(TAG, "User profile updated.");
}
}
});
您无法更新uid
,如果您想添加更多与用户相关的数据,那么唯一的选择是同时使用数据库和身份验证。
您可以查看文档以获取更多信息:
https://firebase.google.com/docs/auth/android/manage-users#update_a_users_profile
推荐阅读
- postgresql - 使用 AWS DMS 迁移后 PostgreSQL 主键序列丢失
- php - WooCommerce:获取 javascript 代码中的帖子 ID 并通过 ajax 传递
- windows-installer - Visual Studio 安装项目 - Windows 安装程序不断弹出
- oracle - 没有第 3 方软件的 Oracle Profiler
- javascript - Angular 6:防止浏览器工具提示在“innerHtml”中显示 HTML 标签
- vb6 - 从win7移到win10后,某些数据库代码不起作用
- reactjs - 测试 react.js 时出现“ReferenceError:waitForElement 未定义”
- git - 为什么 Git 要将我的行尾更正为 CRLF,即使我希望它们在 LF 中?
- oracle - 对 JDBC 批量更新的所有行进行原子锁定
- javascript - 如何在 reactjs 中为组件动态添加属性