android - 写入数据库时,注册后数据库仍然是空的。如何正确地将数据存储在我的数据库中?
问题描述
我正在写 Firebase 实时数据库。如何正确写入数据库?
哪里没有发现错误。但是我将添加实时数据库到应用程序的依赖关系从com.google.firebase:firebase-database:16.0.1
更改为com.google.firebase:firebase-database:16.0.6
.
这是定义的变量
private DatabaseReference mDatabase;
这是我的注册活动代码部分
private void register_user (final String displayName, String email, String password){
mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
FirebaseUser current_user = FirebaseAuth.getInstance().getCurrentUser();
String uid = current_user.getUid();
mDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(uid);
HashMap<String,String> userMap = new HashMap<>();
userMap.put("name",displayName);
userMap.put("status","Hey there I am using ChatApp");
userMap.put("image","default");
userMap.put("thumb_image","default");
mDatabase.setValue(userMap);
} else {
mRegProgress.hide();
Toast.makeText(RegisterActivity.this, "Couldn't Sign in.Please Check and Try Again", Toast.LENGTH_LONG).show();
}
}
});
}
数据条目应存储在数据库中
解决方案
Firebase 实时数据库的默认安全规则拒绝读写。因此,您需要在 Firebase 控制台中检查和更改安全规则。
将安全规则更改为
{
"rules": {
"Users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
}
}
}
有关更多安全选项,请查看firebase 文档
推荐阅读
- html - Chrome:页面在尝试滚动固定定位元素的可滚动子项时滚动
- spring-boot - 带有 Alfresco Process Services (Activiti) 的 Springboot REST 端点
- python - 在测试文件上使用缩放数据
- css - 如何从数字列表中更改单击的 mat-list-item 的颜色
- javascript - 如何使用 AWS Cognito 中的现有用户池生成 aws-exports.js?
- html - CSS:更改表格标题的边框颜色
- angular - 如何获取`ng add`(angular/cli)的可用集合/包/库列表?
- android - 如何计算在 Android 上使用 Alpha 通道覆盖两个颜色整数的结果
- gatsby - 我在 netlify 上的 gatsby 网站在更新时没有刷新
- javascript - React Hook "useState" 在函数 "setResults" 中被调用,它既不是 React 函数组件也不是自定义 React Hook 函数