Save data order ke firebase, yang nantinya mncul di activity my rental history sesuai akunnya kotlin

<a href=' https://drive.google.com/open?id=1ssIvLfyoJoGne_Wm3P8QgQ0n_eidHNUz '> https://drive.google.com/open?id=1ssIvLfyoJoGne_Wm3P8QgQ0n_eidHNUz </a> gambar tampilan history, disini data history tampil dari semua akun yg menyewa, bagaimana cara agar yang muncul adalah history dari order yang dilakukan oleh satu pengguna? apakah yang salah dari cara saya menyimpan ke database atau kesalahan saat saya memanggilnya

//kode dari reservasi yg akan disimpan

 private fun order(){
        val name = Dname.text.toString().trim()
        val email = Demail.text.toString().trim()
        val passport = Dpassport.text.toString().trim()
        val phone = Dphone.text.toString().trim()
        val motor = DnamaMotor.text.toString().trim()
        val start = Dstart.text.toString().trim()
        val finish = Dfinish.text.toString().trim()
        val total = Dtotal.text.toString().trim()
        val hotel = Dhotel.text.toString().trim()
        val adres = Daddress.text.toString().trim()

        val mDatabase =FirebaseDatabase.getInstance().getReference("Reservation")
        val reservationid = mDatabase.push().key
        val reserv = reservation(name,email,passport,phone,motor,start,finish,total,hotel,adres)
        mDatabase.child(reservationid.toString()).setValue(reserv).addOnSuccessListener {
            }
        }
    }

//kode menampilkan di My history

private fun fetchhistory() {
        val ref = FirebaseDatabase.getInstance().getReference("/Reservation")
        mDatabase.child("users").child(mAuth.currentUser!!.uid)
        ref.addListenerForSingleValueEvent(object: ValueEventListener {
            override fun onDataChange(p0: DataSnapshot) {
                val adapter = GroupAdapter<ViewHolder>()
                p0.children.forEach {
                    val reservasi = it.getValue(reservation::class.java)
                    if (reservasi != null) {
                        adapter.add(reservasiItem(reservasi))
                    }
                }
                adapter.setOnItemClickListener { item, view  ->
                    val rslItem = item as reservasiItem
                    val intent = Intent(view.context, successActivity::class.java)
                    startActivity(intent)

                }
                recycleviewhistory.adapter = adapter

            }

            override fun onCancelled(p0: DatabaseError) {
                TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
            }
        })
    }
}

class reservasiItem (val reservasi: reservation): Item<ViewHolder>() {
    override fun bind(viewHolder: ViewHolder, position: Int) {
        viewHolder.itemView.Mnama.text = reservasi.motor
        viewHolder.itemView.mStart.text = reservasi.startdate
        viewHolder.itemView.mReturn.text = reservasi.returndate
        viewHolder.itemView.mtotal.text = reservasi.total
    }

    override fun getLayout(): Int {
        return R.layout.designhistory
    }

}

avatar agusg
@agusg

7 Kontribusi 4 Poin

Diperbarui 5 tahun yang lalu

2 Jawaban:

Saat menyimpan reservasi, kamu simpan juga id akun (akunId) yang sedang login.

Sehingga saat menampilkan di My History nanti kamu filter where akunId == mAuth.currentUser!!.uid. Sehingga history punya orang lain gk ikut

avatar IfanZalukhu
@IfanZalukhu

217 Kontribusi 158 Poin

Dipost 5 tahun yang lalu

ternyata where difirebase menggunakan orderbychild, makasih mas ifan, 2 hari baru ketemu

<pre> val ref = FirebaseDatabase.getInstance().getReference("/Reservation").orderByChild("uid").equalTo(mAuth.currentUser!!.uid) </pre>

avatar agusg
@agusg

7 Kontribusi 4 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban