我正在使用 firebase 作为后端服务。我正在将数据插入到我的 firebase 数据库中,我使用以下代码检查插入是否成功,但它始终返回 false。
boolean issucessfull = ref.child("universities").setValue(university).isSuccessful();
if (issucessfull) {
Toast.makeText(UniversityActivity.this, "added to database successfully", Toast.LENGTH_SHORT).show();
clearViews();
enableViews(true);
} else {
Toast.makeText(UniversityActivity.this, "Some error occured, try again", Toast.LENGTH_SHORT).show();
enableViews(true);
}
可能是什么原因?我已经调试它数据已添加到 firebase 但它仍然总是错误的。任何帮助将不胜感激。
最佳答案
因为Task
还没有完成,添加一个CompletionListener
作为setValue
的第二个参数。
ref.child("universities").setValue(university, new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
if (databaseError != null) {
Toast.makeText(UniversityActivity.this, "Some error occured, try again", Toast.LENGTH_SHORT).show();
enableViews(true);
} else {
Toast.makeText(UniversityActivity.this, "added to database successfully", Toast.LENGTH_SHORT).show();
clearViews();
enableViews(true);
}
}
});
上面的代码是推荐的方式,另一种是
Task<Void> task = new FireDatabaseRole().ref.setValue(university);
task.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
// success
} else {
// error
}
}
});
关于android - Firebase isSuccessful() 总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38681842/