【问题标题】:Structuring group messages firebase构建组消息firebase
【发布时间】:2017-03-03 19:49:11
【问题描述】:

我正在开发一个留言板应用程序,它允许管理员向特定人群发送消息。人们可以订阅多个组。

我需要一个用户列表,其中显示他订阅的组的所有消息。我做了以下结构:

{
    "placeMessages": {
        "<place-push-key>": {
            "message-push-key": {
                "user_id": "<user-push-key>",
                "place_id": "<place-push-key>",
                "subject": ""
                "message": ""
                "date": "<date>"
            }
        }
    },
    "userMessages": {
        "<user-push-key>": {
            "message-push-key": {
            }
        }
    }
}

但问题是,当管理员发送消息时,需要将消息添加到订阅该组的所有用户。这可能意味着 10.000 条消息的原子写入操作。我预计这会很慢,有什么办法可以解决这个问题吗?

【问题讨论】:

    标签: firebase data-structures firebase-realtime-database nosql


    【解决方案1】:

    我认为以下 JSON 提供了有关如何解决您的问题的想法。

    {
        "groups": [{
            "groupId": "001",
            "messages": [{
                "messageId": "001_1001",
                "subject": ""
                "message": ""
                "date": "<date>"
            }, {
                "messageId": "001_1002",
                "subject": ""
                "message": ""
                "date": "<date>"
            }]
        }, {
            "groupId": "002",
            "messages": [{
                "messageId": "002_1001",
                "subject": ""
                "message": ""
                "date": "<date>"
            }, {
                "messageId": "002_1002",
                "subject": ""
                "message": ""
                "date": "<date>"
            }]
        }],
    
        "users": [{
            "userId": 10001,
            "subscribedGroups": ["001", "002"]
        }, {
            "userId": 100012,
            "subscribedGroups": ["001"]
        }, {
            "userId": 100013,
            "subscribedGroups": ["002"]
        }]
    }
    

    注意:这不是您问题的实际解决方案。我以一种通用的方式解决了这个问题。

    【讨论】:

    • 你将如何为这个规则编写规则,以便用户可以在他们的 subsribedgroup 中写入和读取数据
    猜你喜欢
    • 2018-07-21
    • 1970-01-01
    • 2022-06-10
    • 2021-07-12
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多