FIREBASE - записи базы данных в реальном времени, удаленные и созданные после обновления из игрового магазина - PullRequest
0 голосов
/ 18 октября 2019

Я работаю с базой данных в реальном времени, но каждый раз, когда я обновляю приложение в магазине воспроизведения, записи удаляются, а затем создается несколько новых записей со значениями, тогда я не знаю, откуда они берутся. Они удаляются не сразу, а постепенно, с интервалом в несколько секунд. Я не понимаю, я даже изменяю имя дочернего контейнера, чтобы проверить, есть ли проблема между устройствами с постоянными данными, установленными в true, но все еще происходящими, и я являюсь единственным устройством, использующим этого родителя.

Это сводит меня с ума! Кто-нибудь может мне помочь? Спасибо.

    articleListener = object : ValueEventListener {
        override fun onDataChange(dataSnapshot: DataSnapshot) {
            data = mutableListOf()

            for (article in dataSnapshot.children) {
                val articleData = article.getValue(Article::class.java)
                articleData?.id = article.key

                data.indexOfFirst { art -> art.id == article.key }.let {
                    //if ID exists then overrides else add
                    if (it != -1) {
                        articleData?.let { it1 -> data[it] = it1 }
                    } else
                        articleData?.let { it1 -> data.add(it1) }
                }
            }
        }

        override fun onCancelled(databaseError: DatabaseError) {
            // Getting Post failed, log a message
            Log.w("TAG", "loadPost:onCancelled", databaseError.toException())
        }
    }

    firebaseDatabase = try {
        FirebaseDatabase.getInstance().apply { setPersistenceEnabled(true) }
    } catch (e: Exception) {
        Log.w("Warn", e.toString())
        FirebaseDatabase.getInstance()
    }

                // I changed the container from articles to release_articles
    databaseReference = firebaseDatabase.reference.child("release_articles")
    databaseReference.orderByChild("date/time").startAt(getTodayInMillis().toDouble())
        .addValueEventListener(articleListener)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...