【问题标题】:Deleting messages in firebase realtime database react native删除firebase实时数据库中的消息反应原生
【发布时间】:2021-11-03 08:28:55
【问题描述】:

我正在尝试允许我的应用程序上的用户使用 firebase 实时数据库删除一对一的消息,但不知道如何实现这一点。我以为我可以使用 database().ref(messages/${key_name}).remove();但是这样做会删除数据库中两个用户的消息,即使另一个用户没有删除消息。如果消息没有被删除,其他用户应该仍然可以看到这些消息。 你知道我怎么能做到这一点吗?我查看了其他链接,但似乎找不到任何相关内容。以下是消息结构:

【问题讨论】:

    标签: firebase react-native firebase-realtime-database


    【解决方案1】:

    实现此目的的一种方法是:

    为每条消息添加 2 个属性 senderDeleted: falsereceiverDeleted: false。如果发件人删除了一条消息,请转senderDeleted: true。 如果是senderDeleted: true,则不向发件人显示消息。对于receiverDeleted也是如此。

    【讨论】:

      【解决方案2】:

      我通常更喜欢对我的数据库进行建模,以密切反映用户在应用中看到的内容。因此,如果每个用户都可以看到同一对话的不同视图,我会考虑为每个用户创建单独的对话副本。使用该数据结构,从一个用户那里删除消息不会自动从任何其他用户那里删除。

      这种类型的数据重复在 NoSQL 数据库中很常见。如果您不熟悉这些,我建议您查看NoSQL data modeling 并观看Firebase for SQL developers

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-27
        • 1970-01-01
        • 1970-01-01
        • 2021-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多