FirebaseFirestore.getInstance().collection("registration").addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot value, @Nullable FirebaseFirestoreException error) {
for(DocumentSnapshot d:value){
if(d.getId().equals(Name)){
Toast.makeText(MainActivity.this, "User Name already exists", Toast.LENGTH_SHORT).show();
break;
}
else{
is_userExists = false;
}
}
}
});
我想打破 foreach 回圈,但代碼不能正常作業
uj5u.com熱心網友回復:
使用 return 關鍵字而不是 break;
FirebaseFirestore.getInstance().collection("registration").addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot value, @Nullable FirebaseFirestoreException error) {
for(DocumentSnapshot d:value){
if(d.getId().equals(Name)){
Toast.makeText(MainActivity.this, "User Name already exists", Toast.LENGTH_SHORT).show();
return;
}
else{
is_userExists = false;
}
}
}
});
uj5u.com熱心網友回復:
使用 void 方法執行此操作并回傳而不是中斷可能更合乎邏輯。
uj5u.com熱心網友回復:
您的 Break 應該按您的意愿作業,沒有任何問題。
這里可能發生的是以下情況之一:
- d.getId().equals(Name) 結果為假,因為它們不相等
- d.getId() 導致 NullPointerException,因為 d 之前沒有構造
- onEvent 甚至沒有被呼叫...
在這個答案中,我假設您的代碼可以編譯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/409509.html
標籤:
