删除Firebase中的旧数据

时间:2017-06-19 07:53:21

标签: android firebase firebase-realtime-database

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

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

如果我支付firebase服务器,你知道,如果数据库的数据很大,那将会更加昂贵。但我只想留下最后10个句子。 当他们确实回来时,他们可以看到最后10个句子并且想删除除此之外。我该怎么做?

我用日期看到了答案,但我不想这样。这只是答案吗?如果我要删除它们时必须这样做?我什么时候调用删除功能?

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

我不想要花很多钱。我希望它们在我的Firebase数据库控制台中清晰,不脏。所以想删除它们。我要做的是哪一个?哪个时间是我删除它们的最佳时间?打开的时候呢?或者当它关闭时?或者当用户停止我的应用时。

2 个答案:

答案 0 :(得分:1)

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

yourRef.child("messages").child(messageId).removeValue();

实现此目标的另一种方法是使用Cloud Functions for Firebase

希望它有所帮助。

答案 1 :(得分:0)

您可以使用<DetailCmp {...props} /> const DetailCmp = props => ( <div> {props.someVar === "val" ? <A {...props}/> :<B {...props}/>} {props.someVar2 === "val" ? <C {...props}/> :<D {...props}/>} {props.someVar3 === "val" ? <E {...props}/> :<F {...props}/>} </div> ) 删除旧数据,当新数据添加到数据库中时是最佳时间,您可以保留最近100封或更少的消息。