java - 如何在 firebase auth 和 firebase - 实时数据库中获得相同的 id?
问题描述
如何为 firebase auth 和 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>()
而已!
推荐阅读
- .htaccess - .htaccess 重定向到带有变量的升级文件夹
- regex - 使用 Reg Exp 识别字符串末尾的尾随空格字符
- python - 使用 beautifulsoup 进行 Python 网络抓取 - 无法从 Clinicaltrials.gov 中提取 Principal Investigator
- assembly - 以秒为单位获取 UNIX 时间戳
- shell - Makefile 评估问题 - foreach 列表在执行前不评估
- angular - 当我的数据更改时,我的搜索管道过滤器不会更新我的模板
- python-3.x - OpenCV 的 VideoWriter 可以在单独的进程中写入吗?
- docker - 将容器推送到 Azure 容器注册表时资源访问被拒绝
- python - 如何在 Python 中加载 Statsmodels 数据集?
- arrays - 为数组的每个值运行 6 个月总和