我已经整合了我的android应用的firebase auth。假设用户有邮件[email protected]
。我想添加一些额外的信息给用户,如用户名称,职业和地址。我如何连接用户auth表与我的android应用程序来做到这一点?用firebase添加额外的用户信息
我需要为此编写任何API吗?
我已经整合了我的android应用的firebase auth。假设用户有邮件[email protected]
。我想添加一些额外的信息给用户,如用户名称,职业和地址。我如何连接用户auth表与我的android应用程序来做到这一点?用firebase添加额外的用户信息
我需要为此编写任何API吗?
首先,在db中创建一个users
目录。然后,使用您从authn进程获得的用户唯一标识,将用户信息存储在users/{userid}
之下。
要实现此目的,您需要详细了解Firebase数据库。看到这里:https://firebase.google.com/docs/database/android/save-data
有没有办法创建自定义用户ID喜欢我想用电子邮件和密码创建用户,但用户名为1 –
@MasterYoda有一个原因,为什么Firebase数据库不使用增量作为他们的唯一ID。相反,他们提供自己的唯一标识符 –
@teckwei,有一个名为'firebase-admin'的节点模块可以使用。谢谢。我几天前得到它。 –
你必须创建另一个数据库表说“用户”。在成功登录后,首次注册时必须在用户表中创建一个新行。
public static void writeNewUser(DatabaseReference databaseReference, String userId, String name, String email, int accountType) {
User user = new User(name, email, accountType);
databaseReference.child("users").child(userId).setValue(user);
}
你不需要编写任何自定义代码来做到这一点。 Firebase已具备您可以使用的功能。
您需要做的第一件事是确保用户只能访问他们存储的数据。要做到这一点,去Database/Rules
和改变你的规则是:
{
"rules": {
"my_app_user": {
"$uid": {
".write": "auth != null && auth.uid == $uid",
".read": "auth != null && auth.uid == $uid"
}
}
}
}
然后保存在火力地堡数据库的新细节,这样做:
MyAppUser user = new MyAppUser();
user.setAddressTwo("address_two");
user.setPhoneOne("phone_one");
...
mDatabaseReference.child("my_app_user").child(firebaseUser.getUid()).setValue(user).
addOnCompleteListener(DetailsCaptureActivity.this,
new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
...
孩子my_app_user
绝的名称在您的代码和Firebase规则中都会匹配,否则它将不会持续。
如果一切顺利的应该是,你应该看到在你的数据库中的细节:
难道要存储用户信息,像真正的数据库表或想获得从邮件的个人信息id –
是的,我希望他们像一个真正的数据库。可能是一个nosql json就够了,否则table就会很好地继续下去。 现在我打电话给auth.createUserWithEmailAndPassword来创建用户,我在控制台中找到它们。 –
你有没有通过实时数据库在firebase –