Android 删除Firebase中的旧数据

Android 删除Firebase中的旧数据,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我知道这个问题很多,但我不知道。这是关于聊天应用的 当消息存储到firebase数据库中时。随着时间的推移,它会变得越来越大,我想删除它。我应该什么时候删除这个?我只想留下最后10个数据。这意味着如果我退出应用程序并再次进入,它只会出现最后10句话,我知道函数limitToFirst和limitToLast(但这不是删除的事情) 若我支付firebase服务器的费用,你们知道,若数据库的数据很大,那个么它将更加昂贵。但我只想留下至少最后10句话。 当他们回来的时候,他们可以看到最后的10句话,除

我知道这个问题很多,但我不知道。这是关于聊天应用的

当消息存储到firebase数据库中时。随着时间的推移,它会变得越来越大,我想删除它。我应该什么时候删除这个?我只想留下最后10个数据。这意味着如果我退出应用程序并再次进入,它只会出现最后10句话,我知道函数limitToFirst和limitToLast(但这不是删除的事情)

若我支付firebase服务器的费用,你们知道,若数据库的数据很大,那个么它将更加昂贵。但我只想留下至少最后10句话。 当他们回来的时候,他们可以看到最后的10句话,除了这个,他们想删除。我该怎么做

我用日期看到了答案,但我不想那样。这是唯一的答案吗?如果我必须在删除它们时这样做?我什么时候调用delete函数

我几乎知道怎么做,但什么时候?如果在应用程序中,有这么多朋友,我打开聊天屏幕与我的朋友聊天。那个时候我应该使用删除功能删除它们吗?我如何将此保存以用于服务器付款


我不想花很多钱。我希望它们在我的Firebase数据库控制台中是清晰的,而不是肮脏的。所以我想删除它们。我必须做的是什么?我应该在什么时候删除它们?什么时候打开?或者什么时候关门?或者当用户停止“我的应用程序”时。

您可以使用
firebase功能删除旧数据当新数据添加到数据库时,您可以保留最后100条或更少的消息

您可以用一种非常简单的方法来实现这一点。您可以在保存消息的节点上使用
getChildrenCount()
方法查看消息的确切数量。如果使用由
push()
方法生成的随机键作为标识符,则很容易删除额外的消息。由于记录默认按日期排序,因此您可以使用
limitToLast(limit)
方法轻松查询数据库,然后删除如下消息:

yourRef.child("messages").child(messageId).removeValue();
实现这一点的另一种方法是使用


希望能有所帮助。

非常感谢,我通常应该什么时候删除它们??当用户发送消息时,我必须在自己的代码中使用getChildrenCount()?。如果计数大于10,我应该删除它们?我太糊涂了,时间问题。想知道聊天应用程序中典型的删除时间…我建议你每次用户启动应用程序时都使用一次。不是每次用户发送消息时。如果用户在一个会话中发送10条以上的消息,而只显示10条,则可以使用
limitToLast(10)
方法。如果每次用户发送第11条消息时,您都会删除一条消息,这意味着您不需要更多的连接。你只需要删除一次。是的,你对我很有帮助。谢谢。你的意思是当用户打开聊天应用程序时(聊天活动,屏幕)。那时候,我应该删除一次?当用户打开聊天应用程序时,而不是他们正在聊天的活动。流程,打开应用程序->删除的消息->打开聊天活动->查看过滤的消息。哦,我明白了,这是因为删除消息的次数太多,连接太多。那就不好了,对吧?每次用户发送消息时删除消息或每次用户打开活动时删除消息。所以你建议我,当用户尝试打开我的应用程序,然后只需检查一次并删除一次就足够了?哦,你告诉过我时间安排,谢谢。我必须使用它们函数来删除它们?。有没有办法自动删除它们?或者我只是一直使用getChildrenCount()检查它。检查childrencount是最好的选择,或者每段时间使用node调度作业是否有任何方法可以在Firebase中像MYSQL一样调度作业??天啊,我不知道。那是什么?使用nodejs和firebase函数