# #android #firebase #firebase-realtime-database
Вопрос:
Я создаю приложение для посещаемости с помощью базы данных SQLite, но для целей активации я один раз использую Firebase.
И я использую этот код, чтобы проверить, является ли проверенное поле истинным или нет.
ref.child(activation_code).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot data : dataSnapshot.getChildren()) {
ActivationModel model = data.getValue(ActivationModel.class);
Log.d(" ", model.getCode());
Toast.makeText(Setup.this, "" model.isVerified(), Toast.LENGTH_SHORT).show();
if(model==null){
Toast.makeText(Setup.this, "Enter Valid Code!!", Toast.LENGTH_SHORT).show();
}else{
if(model.isVerified()){
Toast.makeText(Setup.this, "Code is already used, Please Enter valid code.", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(Setup.this, "Code worked..", Toast.LENGTH_SHORT).show();
ref.child(activation_code).child(activation_code).child("verified").setValue(true).addOnCompleteListener(task -> {
Toast.makeText(Setup.this, "field changed.", Toast.LENGTH_SHORT).show();
});
}
}
break;
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) { }
});
Теперь проблема заключается в вводе допустимого кода, поэтому я обновляю verified
до true
, поэтому firebase обновляет данные и снова проверяет условие и создает Toast
уже использованный код.
Есть ли какой-нибудь способ, которым я могу справиться с этим?
Комментарии:
1. Что именно в этом коде работает не так, как вы ожидаете? Расскажите нам, что не так с общим кодом. Есть ли у вас какие-либо ошибки?
2. В коде нет ошибки, но поскольку данные синхронизации бд в реальном времени с приложением изменены в firebase, я изменяю поле
verified
на true после действительного кода активации, но как только поле изменилось, приложение обновит код и выдаст мне ошибку: «код уже используется, пожалуйста, введите действительный код».