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