2017-07-18 21 views
-2

私はコーディングが全く新しいです。私は階層でfirebaseデータベースにデータを保存しようとしている:ジョブID(ジョブ1、JOB2、など) - >ジョブパラメータ(日付、優先順位など)ファイアベースデータベースへのフォームデータの追加

をこれは私が使用しています形式です:

submission form

これは、これが私のコードで私の元のコードから自分のfirebase階層

firebase structure

です:

package com.example.myname.todo; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 

import com.google.firebase.database.DatabaseReference; 
import com.google.firebase.database.FirebaseDatabase; 

public class JobForm extends AppCompatActivity { 

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

    // Connect to the Firebase database 
    FirebaseDatabase database = FirebaseDatabase.getInstance(); 
    // Add items via the Button and EditText at the bottom of the window. 
    final EditText jobNum = (EditText) findViewById(R.id.job_id); 
    final EditText jobDate = (EditText) findViewById(R.id.date_now); 
    final EditText jobPri = (EditText) findViewById(R.id.job_imp); 
    final EditText jobDeet = (EditText) findViewById(R.id.job_dis); 
    final EditText jobMch1 = (EditText) findViewById(R.id.first_machine); 
    final EditText jobMch2 = (EditText) findViewById(R.id.second_machine); 
    // Get a reference to the child items it the database 


    final DatabaseReference jobID = database.getReference("Job_ID"); 
    final DatabaseReference dateStart = database.getReference("Start_Date"); 
    final DatabaseReference jobImp = database.getReference("Job_Priority"); 
    final DatabaseReference jobDes = database.getReference("Job_Description"); 
    final DatabaseReference jobMach1 = database.getReference("First_Machine"); 
    final DatabaseReference jobMach2 = database.getReference("Second_Machine"); 



    final Button but_sub = (Button) findViewById(R.id.but_sub); 

    but_sub.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      // Create a new child with a auto-generated ID. 
      DatabaseReference childRef = jobID.push(); 
      // Set the child's data to the value passed in from the text box. 
      childRef.setValue(jobNum.getText().toString()); 
      DatabaseReference childRef2 = dateStart.push(); 
      childRef2.setValue(jobDate.getText().toString()); 
      DatabaseReference childRef3 = jobImp.push(); 
      childRef3.setValue(jobPri.getText().toString()); 
      DatabaseReference childRef4 = jobDes.push(); 
      childRef4.setValue(jobDeet.getText().toString()); 
      DatabaseReference childRef5 = jobMach1.push(); 
      childRef5.setValue(jobMch1.getText().toString()); 
      DatabaseReference childRef6 = jobMach2.push(); 
      childRef6.setValue(jobMch2.getText().toString()); 
     } 
    }); 


} 

}

、ユーザが入力した各ジョブは、その具体的な情報と、データベース内の子を作成するように私は何をすべきかを知っていただきたいと思います。そのような:

  • ジョブ1(展開ジョブ1情報、)
  • JOB2(ジョブ2インフォ拡大)

おかげ

答えて

1

さて、あなたが台無しように私には思えましたfirebaseを学ぶときやFirebaseの仕組みを学ぶときに、毎回DatabaseReferenceを宣言する必要はなく、テーブルのために一度だけ呼び出す必要があります。

final EditText jobNum = (EditText) findViewById(R.id.job_id); 
final EditText jobDate = (EditText) findViewById(R.id.date_now); 
final EditText jobPri = (EditText) findViewById(R.id.job_imp); 
final EditText jobDeet = (EditText) findViewById(R.id.job_dis); 
final EditText jobMch1 = (EditText) findViewById(R.id.first_machine); 
final EditText jobMch2 = (EditText) findViewById(R.id.second_machine); 
// Get a reference to the child items it the database 


final DatabaseReference job = database.getReference("JOBS"); 
final Button but_sub = (Button) findViewById(R.id.but_sub);\`but_sub.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     // you must creat a job class 
     // asumming you did it will have the toString()method in ever parmeteter in the constracter 
     Job job = new Job(jobNum.getText().toString(),...exc); 
     job.child(jobNum).setValue(job); 

//今、あなたはあなたのFirebaseデータベースノードと呼ばれる仕事に持っている必要があります、それは鍵がJOBNUMであり、値が仕事です。これを参照してください。

} 
}); 


    }` 

は私がチャンスを得るとき、私は変更を実装した結果であなたを更新する、それが返信用:)

+0

感謝を助けたホープ –

+0

それは完全に働いたあなたの助けをありがとう! 。 psを使用してノードを追加したい場合は、別のクラスを作成するだけですか? –

+0

同じクラスの他のノードを作成する必要がある場合、 'DatabaseReference job 'を使用してください。別のクラスのために新しい' DatabaseReference' – SalmanALharbi

関連する問題