未添加firebase参考
由于某些原因,数据未添加到firebase数据库中。也许是因为我将数据库设置为测试模式?我不知道。这是之前的工作,但是今天它停止了工作。
private EditText EditTextFullName, EditTextAge, EditTextEmail, EditTextPassword;
private TextView registerUser;
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
mAuth = FirebaseAuth.getInstance();
Objects.requireNonNull(getSupportActionBar()).hide();
EditTextFullName = (EditText) findViewById(R.id.fullName);
EditTextAge = (EditText) findViewById(R.id.age);
EditTextEmail = (EditText) findViewById(R.id.email);
EditTextPassword = (EditText) findViewById(R.id.password);
registerUser= (Button) findViewById(R.id.registerUser);
registerUser.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.registerUser:
registerUser();
break;
}
}
private void registerUser() {
String email = EditTextEmail.getText().toString().trim();
String age = EditTextAge.getText().toString().trim();
String fullname = EditTextFullName.getText().toString().trim();
String password = EditTextPassword.getText().toString().trim();
if(password.length() < 6) {
EditTextPassword.setError("Min password length should be 6 characters");
EditTextPassword.requestFocus();
return;
}
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
User user = new User(fullname, age, email);
FirebaseDatabase.getInstance().getReference("Users")
.child((FirebaseAuth.getInstance().getCurrentUser()).getUid())
.setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful())
{
Toast.makeText(Register.this, "User has been registered", Toast.LENGTH_LONG).show();
startActivity(new Intent(Register.this,Login.class));
} else
{
Toast.makeText(Register.this, "Failed to register", Toast.LENGTH_LONG).show();
}
};
});
}
}
});
}
}
for some reason, the data is not being added to the firebase database. maybe its because i set the database in test mode? i have no idea. this was working before, however today it stopped working.
private EditText EditTextFullName, EditTextAge, EditTextEmail, EditTextPassword;
private TextView registerUser;
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
mAuth = FirebaseAuth.getInstance();
Objects.requireNonNull(getSupportActionBar()).hide();
EditTextFullName = (EditText) findViewById(R.id.fullName);
EditTextAge = (EditText) findViewById(R.id.age);
EditTextEmail = (EditText) findViewById(R.id.email);
EditTextPassword = (EditText) findViewById(R.id.password);
registerUser= (Button) findViewById(R.id.registerUser);
registerUser.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.registerUser:
registerUser();
break;
}
}
private void registerUser() {
String email = EditTextEmail.getText().toString().trim();
String age = EditTextAge.getText().toString().trim();
String fullname = EditTextFullName.getText().toString().trim();
String password = EditTextPassword.getText().toString().trim();
if(password.length() < 6) {
EditTextPassword.setError("Min password length should be 6 characters");
EditTextPassword.requestFocus();
return;
}
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
User user = new User(fullname, age, email);
FirebaseDatabase.getInstance().getReference("Users")
.child((FirebaseAuth.getInstance().getCurrentUser()).getUid())
.setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful())
{
Toast.makeText(Register.this, "User has been registered", Toast.LENGTH_LONG).show();
startActivity(new Intent(Register.this,Login.class));
} else
{
Toast.makeText(Register.this, "Failed to register", Toast.LENGTH_LONG).show();
}
};
});
}
}
});
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,事实证明,我在编写代码时完全失败了。事实证明,我的用户课程与我的构造者一起,在那里我的字符串两次导致数据库不知道该使用什么。
Well it turns out that I completely flopped when writing my code. Turns out in my User class with my constructers, i had my strings there twice causing the database to not know what to use.