从Firebase实时数据库检索时,列表视图中缺少数据库的第一项

时间:2019-07-30 16:24:59

标签: android firebase firebase-realtime-database

我试图在列表视图中检索从用户(作为电子邮件)收到的快照列表。一切正常,但问题在于“子级“已接收快照”下的第一项数据”未反映在列表视图中。”

列表中可见第一个条目(From:kkg@gmail.com)之后的每个条目... 但是,

  
      
  • 为什么不是第一个?
  •   
  • 以及如何解决此问题?
  •   

enter image description here

以下是我的活动代码(在Kotlin中)

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import android.widget.ArrayAdapter
import android.widget.ListView
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.database.ChildEventListener
import com.google.firebase.database.DataSnapshot
import com.google.firebase.database.DatabaseError
import com.google.firebase.database.FirebaseDatabase

class SnapsActivity : AppCompatActivity() {

    private lateinit var mAuth: FirebaseAuth
    lateinit var snapsRecieved:ListView
    var snapsArray:ArrayList<String> = ArrayList()

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

        snapsRecieved = findViewById(R.id.snapsRecievedLV)
        var arrayAdapter:ArrayAdapter<String> = ArrayAdapter(this,android.R.layout.simple_list_item_1,snapsArray)
        snapsRecieved.adapter = arrayAdapter

        mAuth = FirebaseAuth.getInstance()

        FirebaseDatabase.getInstance().reference.child("Users").child(mAuth.currentUser!!.uid).child("Snaps Recieved").addChildEventListener(object: ChildEventListener{
            override fun onCancelled(p0: DatabaseError) {}
            override fun onChildMoved(p0: DataSnapshot, p1: String?) {}
            override fun onChildChanged(p0: DataSnapshot, p1: String?) {}

            override fun onChildAdded(p0: DataSnapshot, p1: String?) {
               snapsArray.add(p0.child("From").value as String)
                arrayAdapter.notifyDataSetChanged()
            }

            override fun onChildRemoved(p0: DataSnapshot) {}

        })


    }
}

0 个答案:

没有答案