我目前正在研究严格使用Firebase作为后端的应用。在我的应用程序中,我想删除30条消息后写入的第一条消息。换句话说,我想只允许存储30条消息。在我的firebase数据库中,我有一个名为“users”的节点,然后是用户ID的节点,然后在其中一个用户ID下,我有另一个名为items的节点。但是,我想要删除项目节点下的第一个子项,但我不知道该子项的名称,因为我正在使用.push()方法来设置它们的键。有人知道如何删除第一个孩子吗?使用Firebase中的推式()键删除第一个孩子
我知道如何删除Firebase中的一个孩子,我只是不知道如何访问那个孩子。我试着沿着线的东西:
DatabaseReference firstMessage = mDatabase.child("users").child(mUserId).child("items").getRef();
然后做删除的孩子。
firstMessage.removeValue();
我的.child之后知道(“项目”)应该有一个额外的孩子,但我怎么拿到钥匙?
编辑:我想出了一个解决方案,但是,而不是删除第一个孩子中的项目节点,它删除了第一个孩子在用户节点
DatabaseReference firstMessage = mDatabase.child("users").child(mUserId).child("items").orderByPriority().limitToFirst(1).getRef();
最简单的解决方案可能是将要使用云功能的火力地堡写一个数据库触发器决定,每个项目将被添加,是否应该在响应中删除旧项目。 –