Firebaseのデータベースにバス番号が既に存在するかどうかをチェックしたいと思います。Firebaseデータクラスに既に値が存在するかどうかを確認する方法Anroid
ここに私のサンプルコードです。私は過去の日を検索してきましたが、正しいコードを見つけることができません。
ref = new Firebase(Config.FIREBASE_URL);
postRef = ref.child("BusNumber");
busNum = edtBus.getText().toString().trim();
route1 = route.trim();
seat = edtSeat.getText().toString().trim();
if (!busNum.isEmpty() && !route1.isEmpty() && !seat.isEmpty()) {
postRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.child(busNum).exists()) {
edtBus.setError("Bus number already exists.");
edtBus.setText("");
} else {
busNumber = new BusNumber();
busNumber.setBusNum(busNum);
busNumber.setRoute(route1);
busNumber.setNumSeat(seat);
postRef.push().setValue(busNumber);
edtBus.setText("");
edtSeat.setText("");
Toast.makeText(AddBusActivity.this, "Saving successful!", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
Toast.makeText(AddBusActivity.this, "Error", Toast.LENGTH_SHORT).show();
Toast.makeText(AddBusActivity.this, firebaseError.getMessage(), Toast.LENGTH_SHORT).show();
}
});
} else {
Toast.makeText(AddBusActivity.this, "Please complete the information", Toast.LENGTH_SHORT).show();
}
誰か助けてもらえますか?前もって感謝します。 if文が正しいかどうかにかかわらず、私の問題はなぜpostRef.addListenerForSingleValueEvent
...が動作しないのですか?私はいくつかのトーストのメッセージをテストしようとしましたが、メッセージは飛び出さないでしょう。
データベースを読み取ることができないFirebaseルールの設定がありますか?おそらく、onCanceledにログを追加し、firebaseエラーがあればそれを出力してください。 – Linxy
@linxyはい私はすでにやりました。しかし、私が覚えている限り。エラーはありません – tin
あなたは解決策を見つけましたか? – silverFoxA