Zee*_*bir 2 android firebase firebase-realtime-database
我使用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);
}
Run Code Online (Sandbox Code Playgroud)
可能是什么原因?我已调试它数据已被添加到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);
}
}
});
Run Code Online (Sandbox Code Playgroud)
以上代码是推荐的方式,另一种方法是
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
}
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1811 次 |
| 最近记录: |