情況:我想從我的功能參數與網址從我的火力實時數據庫中檢索比較一網址。檢索工作,但是,我不知道如何從我的if-else語句中的字符串比較中獲取布爾值,其中我得到一個錯誤:「無法將值賦給最終變量'bool'」。如何從onDataChange方法獲取數據?
比較()代碼:
private boolean compare(String url) {
mDatabaseReference = mFirebaseDatabase.getReference("Executive Branch");
final String newUrl = url;
final boolean bool = false;
mDatabaseReference.limitToFirst(1).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.getChildrenCount() > 0) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
ExecutiveOrder executiveOrder = snapshot.getValue(ExecutiveOrder.class);
if (executiveOrder.getUrl().equals(newUrl)) {
bool = true;
} else {
bool = false;
}
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e("Executive Order", "The read failed: " + databaseError.getDetails());
}
});
return bool;
}
不能從void結果類型的方法返回true或false雖然 –
您是否知道任何其他可能的方式返回true或false? –
我改變了我的答案,現在應該沒問題。但是我建議你提前做firebase檢索,這樣你就不需要阻止或等待結果。 –