2016-12-10 5 views
0

私はFirebaseのリストにデータを追加しようとしていますが、私は近くにいると感じています。Firebaseのリストに追加するには?

データベースはこのように設定されています。 enter image description here

public class AddRestaurantActivity extends AppCompatActivity { 

    private EditText newRestaurant; 
    private Button addBtn; 
    private Button homeBtn; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_add_restaurant); 


     DatabaseReference mRootRef = FirebaseDatabase.getInstance().getReference(); 
     final DatabaseReference mRestReference = mRootRef.child("restaurants"); 

     newRestaurant = (EditText) findViewById(R.id.addrestauranttext); 
     addBtn = (Button) findViewById(R.id.addrestaurantBtn); 
     homeBtn = (Button) findViewById(R.id.HomeButton); 

     addBtn.setOnClickListener(new View.OnClickListener() 
     { 
      @Override 
      public void onClick(View view) { 
       String newRestaurantName = newRestaurant.getText().toString(); 

       mRestReference.getRoot().setValue(newRestaurantName); 
       newRestaurant.setText(""); 
      } 
     }); 

私がこれまで持っていると私はこれを使用する場合、それは動作しないコードです。問題は新しい項目を設定することです。今は、mRestReference.getRoot()。setValue(newRestaurantName)のためにデータベースを完全に置き換えます。私は新しいレストランを追加する方法を見つける必要があるので、すでにデータベースにあるすべてのものを置き換えることはできません。データベースの画像を参照して設定方法を確認してください。 nameという名前の属性が1つしかないのは非常に簡単です。 私はアンドロイドとコーディングに新しいので、どんな助けも素晴らしいでしょう。

+0

「動作しません」より具体的にしてください。例外やその他のエラーメッセージはありますか? – DavidS

+0

私は詳細を追加しようとしました。それはまったく役に立ちますか? – Hunter

+0

https://firebase.google.com/docs/database/android/lists-of-data#append_to_a_list_of_data –

答えて

0

いくつか間違いがありますので、このように変更してください。

addBtn.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View view) { 
      String newRestaurantName = newRestaurant.getText().toString(); 

      DatabaseReference newResturantRef = mRestReference.push(); 

      newResturantRef.child("name").setValue("Taco Bell"); 
      //also store the key of student, so that you can refer it later 
      newResturantRef.child("studentKey").setValue(newResturantRef.getKey()); 
     } 
    }); 

どうすればいいのか教えてください。

+0

これは素晴らしいです!どうもありがとうございます。唯一のことは、1に設定されている子が複数のオプションを入力できるように異なる番号である必要があることです。それを行う方法はありますか? – Hunter

+0

Frank Vanのコメントを参照してください。あなたはプッシュ値を作成することによってそれを達成することができます..それは常に異なる –

+0

私はあなたがfirebaseの初心者であることを理解しています、私はあなたがオンラインチュートリアルをチェックしてfirebaseについて学ぶことをお勧めします。なぜなら、あなたがここで求めていることは、とても基本的なものだからです。毎回この基本的な質問に答えられるのは幸運なことではありません。 ここから始めました:https://www.youtube.com/playlist?list=PLGCjwl1RrtcTXrWuRTa59RyRmQ4OedWrt –

関連する問題