java - Firebase 未向实时数据库添加类
问题描述
我正在使用 Firebase 进行登录,但我希望将用户也添加到实时数据库中,这样我就可以将用户与更多数据链接起来。
当用户注册时,我可以看到该用户已添加到 Firebase 的身份验证部分,并且该用户能够登录,但它没有被添加到实时数据库中。
这是我的代码
db = FirebaseDatabase.getInstance();
users = db.getReference("Users");
User user = new User();
user.setEmail((editEmail.getText().toString()));
user.setPassword((editPass.getText().toString()));
user.setName((editName.getText().toString()));
user.setPhone(editPhone.getText().toString());
users.child(FirebaseAuth.getInstance().getCurrentUser().getUid())
.setValue(user)
我还使用 Toasts 设置了一个 onSuccess/fail 监听器,让我知道它是否失败。两个敬酒都没有执行。我确实在我的数据库上启用了读/写。
解决方案
定义变量。
private DatabaseReference userRef;
在 OnCreate 方法中。
userRef = FirebaseDatabase.getInstance().getReference().child("Users");
在注册按钮中
String getUserName = usernameEditText.getText.toString;
String getBio = bioEditText.getText.toString;
//你应该使用验证
if(getUserName.equals("")
{
usernameEditText.setError("Field Required");
}
else if(getBio.equals("")
{
bioEditText.setError("Field Required");
}
else
{
final HashMap<String , Object> profileMap = new HashMap<>();
profileMap.put("uid" , FirebaseAuth.getInstance().getCurrentUser().getUid());
profileMap.put("name" , getUserName);
profileMap.put("status" , getBio);
userRef.child(FirebaseAuth.getInstance().getCurrentUser().getUid())
.updateChildren(profileMap)
.addOnCompleteListener(new OnCompleteListener<Void>()
{
@Override
public void onComplete(@NonNull Task<Void> task)
{
if (task.isSuccessful())
{
Log.v("Profile Updated" , "Profile Updated Successfully");
Intent intent = new Intent(SettingsActivity.this , MainActivity.class);
startActivity(intent);
finish();
progressDialog.dismiss();
Toast.makeText(SettingsActivity.this, "Your profile Info has been updated", Toast.LENGTH_SHORT).show();
}
}
});
}
推荐阅读
- java - 如何在我的代码中实现“BigInteger 到 Integer,反之亦然”,无法解决不兼容的类型错误
- java - 使用私钥生成 JSON Web 令牌 (JWT)
- google-colaboratory - 如何以编程方式检查连接到哪个运行时 Google Colab 笔记本?
- postgresql - 如何设置 Narayana ConnectionManager 使其在某些事务后不会停止
- rust - 如何在 rust 中找到或插入 Vec
- c# - 是否可以通过 PostgreSQL 的某些 IF 条件使用 WHERE?
- amazon-web-services - 如何通过 AWS cognito 的订阅者(获取帖子列表)获取多个用户?
- python-3.x - map() 函数如何在 python 中工作?
- visual-studio-code - 如何在 Visual Studio Code (VSCode) 中删除块注释
- c# - 在.net c#中使用哪种条形码字体扫描15个字母大小