2015-09-09 3 views
0

Я пытаюсь создать функцию, где я могу удалить «Имя ресторана» на основе ввода пользователя в «TextField» после нажатия кнопки «Отправить».Удалите один узел нажатием кнопки

Рестораны подразделяются на завтрак, обед и ужин.

Я пробовал использовать функцию remove(), но он удаляет все от завтрака, имя ко всем моим данным внутри.

{ 
"BibleVerse": "Verse1", 
"Breakfast": { 
    "Name": { 
    "-JyjnX_b6yQCR068oA9i": "firefly", 
    "-Jyjn_5Wzr1vP5rXi_IG": "congee queen", 
    "-JyjncESMv5vd2nQh4l6": "steakhouse" 
    } 
}, 
"Dinner": "Dinner", 
"Gathering": "Home", 
"Lunch": "Lunch", 
"NexcellMember": "Member1", 
"User": "Adrian" 
} 

Вот мой Java класс, который в данный момент ... Я не знаю, как использовать текст захваченный из Textfield, чтобы установить его, чтобы удалить из Firebase, я могу только удалить весь набор данных.

public class DeleteRestaurant extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.deleterestaurant); 
     Firebase.setAndroidContext(this); 
     Button DelRestNow = (Button) findViewById(R.id.delbutton); 
     DelRestNow.setOnClickListener(Handler); 
    } 

    //Specific Button - Delete Restaurant Name 
    View.OnClickListener Handler = new View.OnClickListener(){ 
     public void onClick(View v){ 
      DelData(); 
     } 
    }; 

    public void DelData(){ 
     // GET and DELETE(Through Database Restaurant Name 
     EditText mEdit = (EditText)findViewById(R.id.delText); 
     String RestName = mEdit.getText().toString(); 
     // Get from Database 
     Firebase ref = new Firebase("https://myfburl.firebaseio.com"); 
     ref.child("Breakfast/Name").removeValue(); 
     mEdit.setText(""); 
    } 

} 
+0

@FrankvanPuffelen Привет, Франк, спасибо, что потратили время, чтобы помочь мне снова. Я включил класс java в вопрос. Пожалуйста, смотрите, и спасибо заранее! –

+0

Лучше, спасибо за это. Я удалю свой комментарий, чтобы очистить. –

ответ

0

Вам нужно будет использовать запрос, чтобы найти нужный товар. В этом случае, поскольку вы ищете предметы, чьи значения соответствует строке пользователь вводит, вы хотите использовать orderByValue():

EditText edit = (EditText)findViewById(R.id.delText); 
final String name = edit.getText().toString(); 
Query query = mRef.child("Breakfast/Name").orderByValue().equalTo(name); 
query.addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     for (DataSnapshot itemSnapshot : dataSnapshot.getChildren()) { 
      itemSnapshot.getRef().removeValue(); 
     } 
    } 

    @Override 
    public void onCancelled(FirebaseError firebaseError) { 

    } 
}); 
edit.setText(""); 

Я добавил деятельность, которая показывает это в действии на мой демо-приложение: https://github.com/puf/firebase-stackoverflow-android

+0

Большое вам спасибо, это решило мою проблему! –

Смежные вопросы