обновлять базу данных Firebase в реальном времени за определенный период с помощью kotlin - PullRequest
0 голосов
/ 11 октября 2018

Я пишу приложение Kotlin для Android с базой данных Firebase Realtime и хочу обновлять данные GPS в определенный период (10 секунд), а не в режиме реального времени.Я пробовал и Timer(), и Handler(), но время обновления было неточным, иногда менее 10 секунд.

Я прочитал это , но это не помогает.

val myTimer = Timer()
        val task = object : TimerTask() {
            override fun run() {
                val database = FirebaseDatabase.getInstance()
                val gps = GPS(latFirebase, longFirebase)
                val mAuth = FirebaseAuth.getInstance()
                val currentUser = mAuth!!.currentUser
                val userID = currentUser!!.uid
                val ref = database.getReference("gps_data/$userID")
                ref.setValue(gps)
            }
        }
        myTimer.schedule(task, 100, 10000)

1 Ответ

0 голосов
/ 11 октября 2018

К сожалению, в базе данных реального времени Firebase нет встроенной операции автоинкремента каждые десять секунд.Если вам нужна эта функциональность, вам придется либо делать это из клиентских приложений, используя обработчик, подобный следующему:

val handler = Handler()
val timer = Timer()
val doAsynchronousTask = object : TimerTask() {
    override fun run() {
        handler.post {
            try {
                //Your function call
            } catch (e: Exception) {
                // TODO Auto-generated catch block
            }
        }
    }
}
timer.schedule(doAsynchronousTask, 0, 10000)

, либо делать это из серверной среды, такой как CloudФункции .Поскольку облачные функции запускаются только в ответ на триггеры и пока не имеют встроенного триггера на время, вы можете использовать такой сервис, как cron-job.org, чтобы эмулировать это.Для этого, пожалуйста, смотрите ответ Фрэнка ван Пуффелена из этого поста .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...