2016-11-29 10 views
1

Firebaseをバックエンドとして使用してAndroidアプリケーションを作成しました。私の問題は、Firebaseに格納できるアイテムが1つだけであることです。さらにデータを書き込もうとすると、既存のデータが置き換えられます。私は、複数のビットとデータを書き、リストビューなどでそれらを取得したい。Androidのfirebaseに複数の項目を書き込む

マイコードは以下の通りです:

public class Capture_Meetings extends AppCompatActivity { 

private EditText editTextName; 
private EditText editTextAddress; 
private EditText editDateTime; 
private TextView textViewPersons; 
private Button buttonSave; 

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

    Firebase.setAndroidContext(this); 

    buttonSave = (Button) findViewById(R.id.buttonSave); 
    editTextName = (EditText) findViewById(R.id.editTextName); 
    editTextAddress = (EditText) findViewById(R.id.editTextAddress); 
    editDateTime = (EditText) findViewById(R.id.editDateTime); 

    textViewPersons = (TextView) findViewById(R.id.textViewPersons); 

    buttonSave.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //Creating firebase object 
      Firebase ref = new Firebase(Config.FIREBASE_URL); 

      //Getting values to store 
      String name = editTextName.getText().toString().trim(); 
      String address = editTextAddress.getText().toString().trim(); 
      String DateTime = editDateTime.getText().toString().trim(); 

      //Creating Person object 
      final MeetingUser person = new MeetingUser(); 

      //Adding values 
      person.setName(name); 
      person.setAddress(address); 
      person.setDateTime(DateTime); 

      //Storing values to firebase 
      ref.child("Person").setValue(person); 


      //Value event listener for realtime data update 
      ref.addValueEventListener(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot snapshot) 
       { 
        for (DataSnapshot postSnapshot : snapshot.getChildren()) { 
         //Getting the data from snapshot 
         MeetingUser person = postSnapshot.getValue(MeetingUser.class); 

         //Adding it to a string 
         String string = "\n Name of School: "+person.getName()+"\n Date:"+ person.getDateTime()+"\nMeeting Notes: "+person.getAddress()+"\n\n"; 

         //Displaying it on textview 
         textViewPersons.setText(string); 
        } 
       } 

       @Override 
       public void onCancelled(FirebaseError firebaseError) { 
        System.out.println("The read failed: " + firebaseError.getMessage()); 
       } 
      }); 

     } 
    }); 
} 

答えて

3

はあなたが一意のIDを持つことになりますノードにデータを追加するためにプッシュ方式を使用することができますFirebase documentation.を見てください。

1

Firebaseでは、1つの子の下に多くのアイテム/値を保存することはできません。しかし、1つの値を持つ子(子)を必要な数だけ作成することができます。 s.aタグ付きの子を作るだけです。 「アドレス」と「名前」をそれぞれの値で置き換えます。

関連する問題