Как сохранить данные ArayList в Firebase, используя kotlin? - PullRequest
0 голосов
/ 07 февраля 2019

У меня возникла проблема при попытке сохранить данные массива из Android-котлина в базе данных Firebase.

Я хочу сохранить данные, как показано ниже: Изображение 1

но когда я сохранял данные, в базе данных Firebase он всегда обновлял объект "pemasukan", а не создавал новые данные.

сохраненные данные всегда были такими, как на картинке ниже Изображение 2

Любой может помочь мне, пожалуйста.Извините за мой английский;)

Это код, который Iam использует для

class PemasukanActivity : AppCompatActivity() {
 private lateinit var database : FirebaseDatabase
private lateinit var mRef : DatabaseReference
lateinit var currentDate : String
 private val id_user = "agus"

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_pemasukan)

        btnSimpan()
}
//aksi tombol untuk simpan data
private fun btnSimpan(){
    btn_simpan_pemasukan.setOnClickListener {
        val pemasukan = Pemasukan()
        if (edt_nama_barang.length() > 3){
            pemasukan.keterangan = edt_nama_barang.text.toString()
        }else{
            edt_nama_barang.error ="Nama Barang Harus lebih dari 3 huruf"
            return@setOnClickListener
        }
        if (edt_jumlah.length() > 3){
            var jumlah = edt_jumlah.text.toString()
            pemasukan.jumlah = jumlah.toLong()
        }else{
            edt_jumlah.error ="Jumlah Harus lebih dari 3 huruf"
            return@setOnClickListener
        }
        simpanData(pemasukan)
    }
}

//simpan data ke firebase
private fun simpanData(listPemasukan :Pemasukan){
    val sdf = SimpleDateFormat("ddMyyyy")
    currentDate = sdf.format(Date())
    val data = Dataitem()
    data.id = currentDate
    data.user_id = id_user
    val nameList = ArrayList<Pemasukan>(Arrays.asList(listPemasukan))
    data.pemasukan = nameList
    database = FirebaseDatabase.getInstance()
    mRef = database.getReference("pendataan")
    mRef.child("${currentDate}").setValue(data)
        .addOnSuccessListener {
            Toast.makeText(this, "Success . .", Toast.LENGTH_LONG).show()
            edt_nama_barang.text.clear()
            edt_jumlah.text.clear()
        }
        .addOnFailureListener {
            Toast.makeText(this, "Gagal Input Data", Toast.LENGTH_LONG).show()
            it.printStackTrace()
            Log.e("FIREBASE_ERROR", it.message)
        }

}

}

И вот такой класс POJO

    data class Dataitem (
    var id : String = "",
    var user_id : String = "",
    var pemasukan : ArrayList<Pemasukan>? = null,
    var pengeluaran : ArrayList<Pengeluaran>? = null
  )
data class Pengeluaran (var jumlah : Long = 0,
                        var keterangan : String = "")
data class Pemasukan (var jumlah : Long = 0,
                      var keterangan : String ="")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...