Ich habe AutoCompleteTextView für Ingredient erstellt, es funktioniert perfekt. Das DB-Speichern funktioniert auch, ich habe es ohne Validierung getestet. Wenn Bestandteil in Firebase db vorhanden ist, möchte ich ein Rezept zu DB hinzufügen. Zum Beispiel, wenn RecipeIngredients="milk"
Rezept in DB gespeichert werden soll.Wie kann ich validieren/überprüfen, ob in Firebase-Datenbank (Android) ein String-Wert vorhanden ist
Hier ist mein Code.
DatabaseReference ingDBref = FirebaseDatabase.getInstance().getReference("Ingredients");
DatabaseReference databaseReference=FirebaseDatabase.getInstance().getReference("Recipes");
public void addRecipe(){
final String RecipeName=RecipeNameEditText.getText().toString();
final String RecipePrepareTime=PrepareTimeEditText.getText().toString();
final String RecipeIngredients=IngredientsACTV.getText().toString();
final String RecipeDescription=DescriptionEditText.getText().toString();
final String RecipeDifficulty=DifficultySpinner.getSelectedItem().toString();
key=databaseReference.push().getKey();
ingDBref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data: dataSnapshot.getChildren()){
if(data.child(RecipeIngredients).getValue()!=null){
Recipes recipes=new Recipes(key,RecipeName,RecipeDifficulty,RecipePrepareTime,RecipeIngredients,RecipeDescription);
databaseReference.child(key).setValue(recipes);
Toast.makeText(AddRecipeActivity.this,"Saved...",Toast.LENGTH_LONG).show();
}
else{
IngredientsACTV.setText("");
Toast.makeText(AddRecipeActivity.this,"Error...",Toast.LENGTH_LONG).show();
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Was ist der Fehler in Ihrem Code? –
Es immer die "else" Anweisung – Chris
Was ist der Wert von 'RezeptZutaten'? Können Sie das Problem mit einem fest codierten Wert reproduzieren? –