限制Firebase Realtime数据库中的用户数

时间:2019-01-09 20:16:10

标签: android firebase-realtime-database

我正在开发一个应用程序。该应用必须能够显示实时数据库中最新的10位注册用户详细信息。即,它将删除所有早于最新10个用户的用户。有什么办法可以做到吗?现在,我的应用程序可以访问实时Firebase中存储的用户详细信息。 预先感谢。

1 个答案:

答案 0 :(得分:1)

听起来完全可行。一种非常简单的方法是在您的应用中检索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 Data Desc Sorting in Android