java - firebase 中的实时数据库未获取通过 android studio 存储的信息
问题描述
我正在使用firebase身份验证,当存储用户的信息时,它会进入firebase中的身份验证,但是当我使用实时数据库的方法来存储信息时任务不成功。我有 SDK-1、google json 文件、所有依赖项以及用于在 firebase 中进行实时和身份验证的实现。在 mAuth.createUserWithEmailAndPassword 的 onComplete 方法内部是 task.isSuccessful 发生的地方,但它永远不会工作。我只是对我缺少与我的项目进行实时数据库连接的步骤感到困惑。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register_user);
mAuth = FirebaseAuth.getInstance();
banner = (TextView)findViewById(R.id.banner);
registerUser = (Button)findViewById(R.id.registerUser);
banner.setOnClickListener((View.OnClickListener) this);
registerUser.setOnClickListener((View.OnClickListener) this);
editTextFullName=(EditText)findViewById(R.id.fullName);
editTextAge=(EditText)findViewById(R.id.age);
editTextTextEmail=(EditText)findViewById(R.id.email);
editTextPassword=(EditText)findViewById(R.id.password);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
Log.d("Adviks"," " + editTextFullName);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.banner:
startActivity(new Intent(this, Register_Page.class));
break;
case R.id.registerUser:
registerUser();
break;
}
}
private void registerUser() {
String email = editTextTextEmail.getText().toString().trim();
String password = editTextPassword.getText().toString().trim();
String fullName = editTextFullName.getText().toString().trim();
String Age = editTextAge.getText().toString().trim();
Log.d("Adviks","Email: " + email + " Name: " + fullName + " Age: " + Age + "password: " + password);
if(fullName.isEmpty())
{
editTextFullName.setError("Full Name is required!");
editTextFullName.requestFocus();
return;
}
if(Age.isEmpty())
{
editTextAge.setError("Age is required!");
editTextAge.requestFocus();
return;
}
if(email.isEmpty())
{
editTextTextEmail.setError("Email is required!");
editTextTextEmail.requestFocus();
return;
}
if(!Patterns.EMAIL_ADDRESS.matcher(email).matches()){
editTextTextEmail.setError("Please provide valid email!");
editTextTextEmail.requestFocus();
return;
}
if(password.isEmpty()){
editTextPassword.setError("Password is required!");
editTextPassword.requestFocus();
return;
}
if(password.length()<6)
{
editTextPassword.setError("Minimum password length should be 6 characters!");
editTextPassword.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()) {
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) {
Log.d("Adviksac"," " + Age);
if (task.isSuccessful()) {
Log.d("Adviksac"," " + Age);
Toast.makeText(register_user.this, "Registered successfully!", Toast.LENGTH_LONG).show();
progressBar.setVisibility(View.GONE);
startActivity(new Intent(register_user.this,Register_Page.class));
} else {
Toast.makeText(register_user.this, "Failed to register! Try again!", Toast.LENGTH_LONG).show();
progressBar.setVisibility(View.GONE);
startActivity(new Intent(register_user.this,Register_Page.class));
}
}
});
} else {
Toast.makeText(register_user.this, "Failed to register! Try again!", Toast.LENGTH_LONG).show();
progressBar.setVisibility(View.GONE);
}
}
});
}
解决方案
推荐阅读
- ajax - 我的 ajax 数据从视图发送到处理程序的范围存储在冷箱中
- c# - 对于 Fortify,什么是验证整数?
- amazon-web-services - 从 redis-cli+stunnel 以外的客户端使用传输中加密 + Auth 连接到 AWS ElastiCache
- javascript - ECMAScript 中的规范类型环境记录(词法环境)和参考有什么区别?
- linux - jenkins.war 停止错误“名称或服务未知”
- python - 数据框中的矢量化标志分配
- dockerhub - Docker hub 可以将价格计划从账户传递到组织
- gcc - 使用 gcc 的 sso bi-endian 代码侏儒生成问题
- vba - #价值!偏移范围值总和的误差
- c# - 使用 Automapper 将扁平化 SQL 响应映射到包含列表列表的对象