【发布时间】:2021-04-14 17:31:42
【问题描述】:
我正在尝试使用 Firebase 制作一个简单的 Android 应用。
目前我只是想从 Firebase 中实时保存用户数据库。但由于某种原因,它不起作用。另一方面,身份验证工作完美。
数据库本身不显示任何内容。它总是显示“null”
我一直在关注这个 YouTube 教程,并且制作的东西非常相似。
当我尝试创建一个用户并将其发送到数据库时,运行程序没有给出答案。一旦 setValue(user) 完成,我就有一个不可见的进度条。而progressBar 永远不会消失。只是呆在那里旋转。
活动
private ProgressBar progressBar;
FirebaseAuth auth = FirebaseAuth.getInstance();
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("users");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
progressBar = findViewById(R.id.progressBar);
progressBar.setVisibility(View.INVISIBLE);
registerButton = findViewById(R.id.registerButton);
registerButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
registerUser();
}
});
}
private void registerUser() {
String name = nameTV.getText().toString().trim();
String email = emailTV.getText().toString().trim();
String pwd = pwdTV.getText().toString().trim();
String confirmPwd = confirmPwdTV.getText().toString().trim();
progressBar.setVisibility(View.VISIBLE);
auth.createUserWithEmailAndPassword(email, pwd)
.addOnCompleteListener(ActivityRegister.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
User user = new User(email, name, pwd);
myRef.setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Toast.makeText(ActivityRegister.this, "User has been registered successfully", Toast.LENGTH_LONG).show();
progressBar.setVisibility(View.GONE);
startActivity(new Intent(ActivityRegister.this, ActivityLogin.class));
} else {
Toast.makeText(ActivityRegister.this, "Failed to register. Try again", Toast.LENGTH_LONG).show();
progressBar.setVisibility(View.GONE);
}
}
});
} else {
Toast.makeText(ActivityRegister.this, "Failed to register. Try again", Toast.LENGTH_LONG).show();
progressBar.setVisibility(View.GONE);
}
}
});
}
依赖关系
implementation platform('com.google.firebase:firebase-bom:26.2.0')
implementation 'com.google.firebase:firebase-analytics'
implementation 'com.google.firebase:firebase-database:19.6.0'
【问题讨论】:
-
请仅使用
android-studio标签来回答有关 Android Studio IDE 本身的问题。对于一般的 Android 编程问题,请使用android标签。这也将自动启用 Java 和 Kotlin 的语法高亮显示。 -
你从来没有说过你检查过firebase数据库,所以我需要问一下。你是否?你在用户名下有什么写的吗?
-
你收到 Toast 消息了吗?
-
没有。进度条一直在那里永远旋转。没有吐司
标签: android firebase firebase-realtime-database