Получите данные от дочерней базы данных Firebase Realtime Database - PullRequest
0 голосов
/ 20 июня 2019

Это мой проект, у меня есть 2 RecyclewView, первый выбирает пользователя, которым я хочу манипулировать, который работает отлично. При его выборе я сохраняю ваш идентификатор и переношу его на следующий экран, который должен отображать вашу историю болезни (используя ваш идентификатор для поиска в вашей базе данных по вашей истории). Но это представление переработчика остается пустым, не выдает ошибку, но также не возвращает ничего, может быть, я упускаю время, чтобы указать путь, по которому следует перенести эту историю.

image BD Firestore: [1]: https://imgur.com/HOxQTsI

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

    setSupportActionBar(toolbar_historico)
    toolbar_historico.setTitle("Titulo Aqui")

    userId = intent.extras?.getString("userId")


    textViewX.setText(userId)



    getLastKey()

    val layoutManager = LinearLayoutManager(this)
    recycler_view_historico.layoutManager = layoutManager

    val dividerItemDecoration = DividerItemDecoration(recycler_view_historico.context, layoutManager.orientation)
    recycler_view_historico.addItemDecoration(dividerItemDecoration)

    adapter = HistoricoAdapter(this)
    recycler_view_historico.adapter = adapter

    getHistorico()

    recycler_view_historico.addOnScrollListener(object : RecyclerView.OnScrollListener() {
        override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
            super.onScrolled(recyclerView, dx, dy)
            total_item = layoutManager.itemCount
            last_visible_item = layoutManager.findLastVisibleItemPosition()

            if (isLoading && total_item <= last_visible_item + ITEM_COUNT) {
                getHistorico()
                isLoading = true
            }
        }
    })
}


private fun getHistorico() {
    if (!isMaxData) {
        val query: Query
        if (TextUtils.isEmpty(last_node))
            query = FirebaseDatabase.getInstance().reference
                .child("pacientes/$userId/historico")
                .orderByKey()
                .limitToFirst(ITEM_COUNT)
        else
            query = FirebaseDatabase.getInstance().reference
                .child("pacientes/$userId/historico")
                .orderByKey()
                .startAt(last_node)
                .limitToFirst(ITEM_COUNT)

        query.addListenerForSingleValueEvent(object : ValueEventListener {
            override fun onCancelled(p0: DatabaseError) {
            }

            override fun onDataChange(p0: DataSnapshot) {
                if (p0.hasChildren()) {
                    val historicoLista = ArrayList<HistoricoRecycle>()
                    for (snapshot in p0.children)
                        historicoLista.add(snapshot.getValue(HistoricoRecycle::class.java)!!)
                    last_node = historicoLista[historicoLista.size - 1].data

                    if (!last_node.equals(last_key))
                        historicoLista.removeAt(historicoLista.size - 1)
                    else
                        last_node = "end"

                    adapter.addAll(historicoLista)
                    isLoading = false
                } else {
                    isLoading = false
                    isMaxData = true
                }
            }

        })
    }
}

private fun getLastKey() {

    val get_last_key = FirebaseDatabase.getInstance().getReference()
        .child("pacientes/$userId/historico")
        .orderByKey()
        .limitToLast(1)
    get_last_key.addListenerForSingleValueEvent(object : ValueEventListener {
        override fun onCancelled(p0: DatabaseError) {
        }

        override fun onDataChange(p0: DataSnapshot) {
            for (userSnapShot in p0.children)
                last_key = userSnapShot.key
        }
    })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...