如何获取Firebase身份验证和Firebase实时数据库的相同ID?当用户注册帐户时,他们将在数据库中获得其ID,但是后来我意识到ID是不同的吗?如何确保两个数据库都具有相同的ID?不同的ID
//create customer
firebaseAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(RegisterActivity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
authData = firebaseAuth.getUid();
String id = databaseReference.push().getKey();
Customer info = new Customer(id, name, email, address, telephone_number);
FirebaseDatabase.getInstance().getReference("Customer")
.child(Objects.requireNonNull(FirebaseAuth.getInstance().getCurrentUser()).getUid())
.setValue(info).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
regProgressBar.setVisibility(View.VISIBLE);
Toast.makeText(RegisterActivity.this, "Registration Complete", Toast.LENGTH_SHORT).show();
startActivity(new Intent(getApplicationContext(), MainActivity.class));
}
});
}
}
});
FirebaseDatabase.getInstance().getReference("Customer")
.child(Objects.requireNonNull(FirebaseAuth.getInstance().getCurrentUser()).getUid())
我试图用上面的代码替换上面的代码
FirebaseDatabase.getInstance().getReference("Customer")
.child(id)
我获得了相同的ID,但随后遇到另一个问题,无法显示我的个人资料活动
java.lang.NullPointerException:尝试从空对象引用中的字段“ java.lang.String com.example.gerobokgo.Model.Customer.name”中读取
所以我决定改回第一个编码。
没关系,我已经解决了这个问题
只需删除String id = databaseReference.push().getKey();
和更改FirebaseDatabase.getInstance().getReference("Customer").child(Objects.requireNonNull(FirebaseAuth.getInstance().getCurrentUser()).getUid()).setValue(info).addOnCompleteListener(new OnCompleteListener<Void>()
至
databaseReference.child(authData).setValue(info).addOnCompleteListener(new OnCompleteListener<Void>()
而已!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句