为什么用户没有注册我的实时 Firebase 数据库?



我一直在遵循一个教程,为我的项目创建一个像Tinder这样的应用程序,我正在学习数据库。我已经设置了代码的教程中说,在Android工作室的版本,我有,但当我注册用户,他们不出现在数据库中,尽管配置文件通过身份验证。我已经设定了规则,但它仍然没有解决我的问题。我唯一能想到的是,我的数据库被设置为比利时西欧在美国所有教程Firebase显示美国作为数据库位置。如果有人有任何建议,请提出来,谢谢。

Ps:这里是教程链接https://www.youtube.com/watch?v=_thTn8SDjC8&list=PLxabZQCAe5fio9dm1Vd0peIY6HLfo5MCf&index=5

public class RegistrationActivity extends AppCompatActivity {
private Button mRegister;
private EditText mEmail, mPassword, mName;
private RadioGroup mRadioGroup;
private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener firebaseAuthStateListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registration);
mAuth = FirebaseAuth.getInstance();
firebaseAuthStateListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user !=null) {
Intent intent = new Intent(RegistrationActivity.this, MainActivity.class);
startActivity(intent);
finish();
return;
}
}
};
mRegister = (Button) findViewById(R.id.register);
mEmail = (EditText) findViewById(R.id.email);
mPassword = (EditText) findViewById(R.id.password);
mName = (EditText) findViewById(R.id.name);
mRadioGroup = (RadioGroup) findViewById(R.id.radioGroup);
mRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int selectId = mRadioGroup.getCheckedRadioButtonId();
final RadioButton radioButton = (RadioButton) findViewById(selectId);
if(radioButton.getText() == null){
return;
}
final String email = mEmail.getText().toString();
final String password = mPassword.getText().toString();
final String name = mName.getText().toString();
mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(RegistrationActivity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful()){
Toast.makeText(RegistrationActivity.this, "Error Signing In", Toast.LENGTH_SHORT).show();
}else{
String userId = mAuth.getCurrentUser().getUid();
DatabaseReference currentUserDb = FirebaseDatabase.getInstance().getReference().child(radioButton.getText().toString()).child(userId).child("name");
currentUserDb.setValue(name);
}
}
});
}
});
}
@Override
protected void onStart() {
super.onStart();
mAuth.addAuthStateListener(firebaseAuthStateListener);
}
@Override
protected void onStop() {
super.onStop();
mAuth.removeAuthStateListener(firebaseAuthStateListener);
}

}

我发现通过实验,数据库必须设置为美国,而不是比利时。目前还不清楚为什么会这样,但是用美国的位置启动一个新数据库似乎可以将用户注册到数据库

相关内容

  • 没有找到相关文章

最新更新