我正在开发一个应用程序。该应用程序必须能够显示来自实时数据库的最新 10 个注册用户的详细信息。也就是说,它会删除任何早于最近 10 个用户的用户。有什么办法可以做到这一点?现在我的应用程序能够访问存储在实时 firebase 中的用户详细信息。 提前致谢。
最佳答案
这听起来完全可行。一种非常简单的方法是在您的应用中检索 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
关于android - 限制 Firebase 实时数据库中的用户数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54117654/