2017-03-10 21 views
0

私はAndroidからFirebaseにデータを書き込む方法を知っています。しかし、私は単一のタイプのデータしか書くことができません。このように:AndroidベースのFirebaseでArrayListを含むさまざまなタイプのデータを含むオブジェクトを送信するにはどうすればよいですか?

databaseRef.child("Players").child("time").setValue("It is time"); 

これは、Firebaseのこれらの2つの子ノード内に「時間です」という値を書き込みます。 Firebaseからノードを追加してデータを追加するのは簡単です。

私はAndroidでプログラム的にやりたいです。たとえば、「時間」の子供の下で、私はこのようなオブジェクトを持つようにしたい:

time 

    | 
     0 
     key value 
     key value 

あなたはインデックス0とオブジェクトの下に見ることができるように、私は、キー値の配列を持っています。だから、どのようにFirebaseのjavaを使ってオブジェクトを異なるタイプのデータで送ることができますか?あなたは私はこれは私がそれを作ったクラスである必要があるかについてより多くの情報が必要と

EDIT

Time.class

public class Time { 

String start; 
String finish; 
String breaktime; 

public Time(String breaktime, String finish, String start) { 
    this.breaktime = breaktime; 
    this.finish = finish; 
    this.start = start; 
} 

public String getBreaktime() { 
    return breaktime; 
} 

public void setBreaktime(String breaktime) { 
    this.breaktime = breaktime; 
} 

public String getFinish() { 
    return finish; 
} 

public void setFinish(String finish) { 
    this.finish = finish; 
} 

public String getStart() { 
    return start; 
} 

public void setStart(String start) { 
    this.start = start; 
} 

}

Directions.class

public class Directions { 

String from; 
String bd; 
String basement; 
String cave; 
String cityHall; 


public Directions(String basement, String bd, String cave, String cityHall, String from) { 
    this.basement = basement; 
    this.bd = bd; 
    this.cave = cave; 
    this.cityHall = cityHall; 
    this.from = from; 
} 

public String getBasement() { 
    return basement; 
} 

public void setBasement(String basement) { 
    this.basement = basement; 
} 

public String getBd() { 
    return bd; 
} 

public void setBd(String bd) { 
    this.bd = bd; 
} 

public String getCave() { 
    return cave; 
} 

public void setCave(String cave) { 
    this.cave = cave; 
} 

public String getCityHall() { 
    return cityHall; 
} 

public void setCityHall(String cityHall) { 
    this.cityHall = cityHall; 
} 

public String getFrom() { 
    return from; 
} 

public void setFrom(String from) { 
    this.from = from; 
} 

}

MainActivity.class

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Time time = new Time("10min","34min 3sec","48min"); 
    Game nName = new Game("Shit Happens"); 

    myRef.child("Golie").child("Br").setValue(time,nName); 



} 
com.google.firebase.database.DatabaseException:

は、これは私に起因する誤差

を与えるクラスclass game.com.gameとノードの解析に失敗しました。ゲーム

+0

私たちがあなたがやろうとしていることを知っているようにもう少しコードを教えてください。オブジェクトの種類がfirebaseに保存されているとします。 – Elemental

+0

今はいいですか?私は多くの情報で私の質問を編集しました – Mrkle

+0

@Doodle Yep - あなたの問題を解決した答えははるかに優れていますか?そうであれば、正しい答えとしてそれを受け入れる必要があります。 – Elemental

答えて

0

Firebaseはあなたがfirebase

に私はMyModel calssのオブジェクトを保存する方法の小さな例を説明する 非常に効率的なネストされたクラスのオブジェクトを追加したいデータを保存することができますこのような別のクラスにFirebaseに保存するには:その後、

public class MyModel{ 
    public String name; 
    public String collegeId; 
    public String faculty; 
    public String specialization; 
    public String year; 
    public String mobileNumber; 
    public String emailAddress; 
    public String projectName; 
    public String projectDescription; 
    public String projectOfferedSolution; 
    public String projectAddress; 
    private String projectPhases; 
} 

GE TAあなたの子供

mFirebaseDatabase = FirebaseDatabase.getInstance(); 
      mProjectsDatabaseReference = 
mFirebaseDatabase.getReference().child("Projects"); 

への参照は、mymodelというクラスのインスタンスを作成し、その中

MyModel model=new MyModel(); 

     model.Address(mProjectAddress.getText().toString()); 
       model.Name(mProjectName.getText().toString()); 
       model.Description(mProjectDescription.getText().toString()); 
       model.OfferedSolution(mProjectSolution.getText().toString()); 
       model.Phases(mProjecPhases.getText().toString()); 

をあなたの値を設定し、その後

mProjectsDatabaseReference.push().setValue(model); 

参照をfirebaseためにあなたのデータオブジェクトを送る追加Firebaseコンソールアプリケーションからのこの画像の結果

Firebase result image :

関連する問題