【发布时间】:2019-01-15 16:06:48
【问题描述】:
我想使用 Firebase 实时数据库创建一个聊天应用程序,让许多人可以同时聊天。所有消息都应该存储在那里:
->1
->user
->message
->2
->user
->message
...
但如果消息数量过多(例如 200 条),则应删除最后 10 条。
所以我尝试过(但显然这不是最好的解决方案)如下: 您可以让每部手机都执行此操作,如下所示:
myReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
if(dataSnapshot.getChildrenCount() > 200){
//Here would be the code to delete it
}
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
【问题讨论】:
-
您是否正在寻找一种“更好”的方法来做到这一点,那么这是您的问题吗?
-
如果您正在寻找关于此的讨论,搜索词之一是“缓存替换”。
-
@EdNorman 是的,这就是我要找的东西
-
如果您考虑在某个时候尝试使用Cloud Firestore,您可以在此处找到有关如何创建完整且实用的Firestore Chat App 的教程。
-
Alex Mamo:问题是你用 Kotlin 编码
标签: android firebase firebase-realtime-database chat