Ограничить количество пользователей в базе данных Firebase Realtime - PullRequest
0 голосов
/ 09 января 2019

Я разрабатываю приложение. Приложение должно отображать последние 10 зарегистрированных данных пользователя из базы данных в режиме реального времени. То есть он удаляет любого пользователя старше 10 последних пользователей. Есть ли способ, которым я могу сделать это? Прямо сейчас мое приложение может получить доступ к пользовательским данным, хранящимся в базе данных в реальном времени. Заранее спасибо.

1 Ответ

0 голосов
/ 09 января 2019

Это звучит вполне осуществимо. Невероятно простой способ - найти 11 пользователей в вашем приложении, а затем просто удалить последнего.

ref.orderByChild("descending_timestamp").limitToFirst(11).addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        int userCount = 0;
        for (DataSnapshot userSnapshot: dataSnapshot.getChildren()) {
            if (userCount++ > 10) {
                userSnapshot.getRef().remove();
            } else {
                // TODO: show the user in your app
            }
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        // Getting Post failed, log a message
        Log.w(TAG, "load users", databaseError.toException());
    }
});

Вы заметите, что я заказываю на descending_timestamp, что является свойством, которое вы должны добавить к данным, и которое позволяет сортировать пользователей в обратном хронологическом порядке. Подробнее об этом см. Сортировка данных Firebase в Android

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