【发布时间】:2021-07-26 16:13:04
【问题描述】:
我创建了一个简单的注册表单。当我单击注册时,会创建用户,但名称和电子邮件等数据并未保存在实时数据库中。我已经尝试并测试了我可以在网上找到的所有内容。我的实时数据库服务器是 ASIA SOUTH-EAST1。而且我也将规则更改为true。 下面是我创建用户的代码:
progressBar.setVisibility(View.VISIBLE);
mAuth.createUserWithEmailAndPassword(email, pass)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
User muser= new User(name, email);
//user is created and can be seen in authentication list
//Code down below is to add data to database but doesnt work!
FirebaseDatabase.getInstance().getReference("Users")
.child(FirebaseAuth.getInstance().getCurrentUser().getUid())
.setValue(muser)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()){
Toast.makeText(Signup_User.this, "Registered successfully!
PLEASE LOGIN AGAIN", Toast.LENGTH_LONG).show();
startActivity(new Intent(Signup_User.this,
Home_activity.class));
progressBar.setVisibility(View.GONE);
}else{
Toast.makeText(Signup_User.this, "Something went wrong!",
Toast.LENGTH_LONG).show();
progressBar.setVisibility(View.GONE);
}
}
});
}else{
Toast.makeText(Signup_User.this, "Failed to register, Something went
wrong!" + task.getException().getMessage(), Toast.LENGTH_LONG).show();
progressBar.setVisibility(View.GONE);
}
}
});
还有 User.java 文件:
package com.example.covoid;
public class User {
public String name, email;
public User(){
}
public User(String name, String email){
this.name = name;
this.email = email;
}
}
【问题讨论】:
-
是你的“Toast.makeText(Signup_User.this, “出了点问题!”, Toast.LENGTH_LONG).show();"显示?
-
不,进度条一直在转啊转啊转啊转啊
-
你的 onComplete 是否被触发了?
-
是的,onComplete 被触发,因为我可以看到用户在 firebase 中进行了身份验证,我也可以登录,但是与用户相关的数据(例如姓名、电子邮件)没有被存储跨度>
-
如何检查姓名、电子邮件是否未被存储?
标签: android database firebase firebase-realtime-database