Firebase未存储数据.项目生成成功,Logcat中没有错误



这是我创建的registerUser函数。如果你能看到,我已经完成了将值存储到数据库中所需的一切使用setValue((方法获取firebase数据库的引用和实例以及设置值,并传递构造函数类user的用户对象。我不知道哪里出了问题。请帮忙,这将是非常可观的。这是我注册用户并存储到Firebase数据库的Java代码

private void registerUser()
{
String Email=nEmail.getText().toString().trim();
String password=npassword.getText().toString().trim();
String Username=nFullName.getText().toString().trim();
String Phone=nphone.getText().toString().trim();
if(Username.isEmpty()) {
nFullName.setError("Name is required");
nFullName.requestFocus();
return;
}
if(Email.isEmpty()) {
nEmail.setError("Email is required");
nEmail.requestFocus();
return;
}
if(!Patterns.EMAIL_ADDRESS.matcher(Email).matches()){
nEmail.setError("please provide valid email");
nEmail.requestFocus();
return;
}
if(password.isEmpty()) {
npassword.setError("password is required");
npassword.requestFocus();
return;
}

if(password.length() < 6)
{
npassword.setError("password must be 6 chracters long");
npassword.requestFocus();
return;
}
if(Phone.isEmpty()) {
nphone.setError("Phone is required");
nphone.requestFocus();
return;
}
progressBar.setVisibility(View.VISIBLE);
mAuth.createUserWithEmailAndPassword(Email,password)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful())
{
String Email=nEmail.getText().toString().trim();
String Username=nFullName.getText().toString().trim();
String Phone=nphone.getText().toString().trim();
Users user=new Users(Username,Phone,Email);
FirebaseDatabase.getInstance().getReference("Users")
.child(Objects.requireNonNull(FirebaseAuth.getInstance().getCurrentUser()).getUid()).setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()){
Toast.makeText(activity_register.this,"User Has been Successfully registered",Toast.LENGTH_SHORT).show();
progressBar.setVisibility(View.GONE);
}
else
{
Toast.makeText(activity_register.this,"Failed..... :(",Toast.LENGTH_SHORT).show();
progressBar.setVisibility(View.GONE);
}
}
});
}

else
{
Toast.makeText(activity_register.this,"Failed..... :(",Toast.LENGTH_SHORT).show();
progressBar.setVisibility(View.GONE);
}
}
});

}
}

如果工作需要,还建议我使用任何依赖项。

我认为问题的解决方案是以另一种方式使用FirebaseDatabase。Problem:您正在调用;getReference"方法并用String值初始化它:";用户";。

代替:

FirebaseDatabase.getInstance().getReference("Users")
.child(Objects.requireNonNull(FirebaseAuth.getInstance().getCurrentUser()).getUid()).setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {

试试这个:

FirebaseDatabase var1 = FirebaseDatabase.getInstance();
DatabaseReference userRef = var1.getReference().child("Users");
FirebaseAuth auth = FirebaseAuth.getInstance();  
userRef = userRef.child(auth.getCurrentUser()).getUid());
userRef.setValue("your string").addOnCompleteListener(new 
OnCompleteListener<Void>() { 
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful())
{System.out.print("Now it works!")
}
}
});

setValue方法需要一个字符串值(通常(。

请不要在setValue方法中放入类似Users类的类。

如果你想为一个用户保存多个数据字符串,你可以在用户根后面添加另一个.child("DataStringName"(。

用户名和普通名称示例:

FirebaseDatabase var1 = FirebaseDatabase.getInstance();
DatabaseReference userRef = var1.getReference().child("Users");
FirebaseAuth auth = FirebaseAuth.getInstance();  
userRef = userRef.child(auth.getCurrentUser()).getUid());
DatabaseReference usernameRef = userRef.child("username");
DatabaseReference nameRef = userRef.child("name");
usernameRef.setValue("Username").addOnCompleteListener(new 
OnCompleteListener<Void>() { 
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful())
{System.out.print("Username is uploaded!")
}
}
});
nameRef.setValue("Name").addOnCompleteListener(new 
OnCompleteListener<Void>() { 
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful())
{System.out.print("Name is uploaded!")
}
}
});

我希望这个答案对你有帮助!

谨致问候!

因此,创建帐户的代码是正确的。

有几件事你应该特别注意:

  1. 是否已在Firebase身份验证中启用电子邮件/密码功能(Firebase(

  2. 你按照安卓系统的说明操作了吗?

请向我显示包含错误响应或firebase的任何响应的日志。我相信会有回应的!

相关内容

最新更新