gpt4 book ai didi

java - 在 Firebase 实时数据库和经过身份验证的用户之间创建链接

转载 作者:行者123 更新时间:2023-11-30 00:04:26 25 4
gpt4 key购买 nike

到目前为止,我已经在我的 Android 应用程序中成功实现了 Firebase,我可以在其中通过 SignUpActivity 将用户添加到身份验证门户,还可以通过 将维护问题添加到实时数据库>维护 Activity

但是,目前,没有一个数据库数据是链接到特定用户的,这就是我想要实现的。因此,基本上在我以任意用户身份登录的那一刻,总会出现相同的数据。

据推测,在阅读了其他几个与此相关的话题后,此处将需要用户 UID,并且每条维护记录都需要提供该 UID。

但是,我不确定如何实现它。可能需要在 MainActivity 中实现一层身份验证?

我很难理解这个问题,因此非常感谢对此的任何帮助。

注册 Activity

mDatabase = FirebaseDatabase.getInstance().getReference().child("users");
final DatabaseReference[] ref = new DatabaseReference[1];
final FirebaseUser[] mCurrentUser = new FirebaseUser[1];
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(SignUpActivity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Toasty.info(getApplicationContext(), "creation of account was: " + task.isSuccessful(), Toast.LENGTH_SHORT).show();
if (task.isSuccessful()) {
mCurrentUser[0] = task.getResult().getUser();
ref[0] =mDatabase.child(mCurrentUser[0].getUid());
ref[0].child("email").setValue(email);

Intent intent = new Intent(SignUpActivity.this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
}
});

最佳答案

你可以这样实现:

 mDatabase = FirebaseDatabase.getInstance().getReference().child("Users");
DatabaseReference ref;
FirebaseUser mCurrentUser;
auth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(SignUpActivity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Toasty.info(getApplicationContext(), "creation of account was: " + task.isSuccessful(), Toast.LENGTH_SHORT).show();
if (task.isSuccessful()) {
mCurrentUser= task.getResult().getUser();
ref=mDatabase.child(mCurrentUser.getUid());
ref.child("email").setValue(email);
ref.child("name").setValue(name);

}
});

你可以像上面那样实现它,然后在你的数据库中你将拥有:

Users
userid
name: userx
email: userx@gmail.com

在使用 createUserWithEmailAndPassword(email, password) 对用户进行身份验证后,您可以检索电子邮件和姓名,以及写入的任何额外数据并将其发送到数据库。

mCurrentUser.getUid() 将为您提供可在数据库中使用的用户 ID。

关于java - 在 Firebase 实时数据库和经过身份验证的用户之间创建链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49262297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com