- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 Firebase 进行聊天。我需要为每个用户显示他们所属组的列表,并为每个组显示所有成员。
由于 Firebase 的设计方式,并且为了获得可接受的性能,我认为制作一个包含成员列表的所有组的列表,并为每个用户创建一个包含他们所属的所有组的条目。
我的第一个问题是,这是正确的方法吗?
如果是这样,我的第二个问题是如何自动添加(或删除)用户,即确保将用户添加到组中并将组添加到用户中或根本不添加(即从未存储在仅 1 个位置并使数据库不一致)?
最佳答案
您提出的数据模型与 Firebase 的建议一致。 best way to structure data in firebase 中概述了更详细的解释。
users/userid/groups
groups/groupid/users
Firebase 为原子操作提供 .transaction。您可以链接多个事务以确保数据一致性。您还可以使用 onComplete 回调函数。详细解释参见firebase transaction 。我正在使用相同的方法来使仪表板显示的多个消息计数保持最新。
嵌套事务的示例代码:
ref.child('users').child(userid).child(groupid).transaction(function (currentData) {
if (currentData === null) {
return groupid;
} else {
console.log('groupid already exists.');
return; // Abort the transaction.
}
}, function (error, committed, snapshot) {
if (committed) {
console.log('start a new transaction');
ref.child('groups').child(groupid).child(userid).tranaction(function (currentData) {
if (currentData === null) {
return userid;
} else {
console.log('Userid already exists.');
//add code here to roll back the groupid added to users
return; // Abort the transaction.
}
}, function (error, committed, snapshot) {
if (error) {
//rollback the groupid that was added to users in previous transaction
}
})
}
});
关于firebase - 如何使用 Firebase 存储聊天的用户和群组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29867328/
我正在使用 Django、django-allauth 和 django-invitations。我能够成功邀请用户加入平台,但我想将他们与邀请人的公司相关联。 我已经阅读了 bee-keeper/d
我正在使用 Django、django-allauth 和 django-invitations。我能够成功邀请用户加入平台,但我想将他们与邀请人的公司相关联。 我已经阅读了 bee-keeper/d
我一直在尝试向 Android 设备中的 Telegram 组添加一个机器人,但我无法这样做。我试过@bot_name、/bot_name,但它不起作用。 是否可以将机器人添加到组中,或者我应该使用
如何删除我刚刚创建的 Telegram 群组? 请注意,它是关于删除 Telegram 群组,而不是 Delete Message from Telegram Group Delete Telegra
Google groups settings SDK ( python ) 似乎在“任何人都可以请求”和“组织中的任何人都可以请求”加入权限之间没有区别。 whoCanJoin 权限参数仅允许以下值:
我有这个脚本: $limit1=10; $MySQL=mysql_connect($myhost,$myuser,$mypass); mysql_select_db($sitedb);
我正在设置一个 Wordpress 页面,我正在尝试自定义 buddypress 组的外观。我希望它们水平显示而不是垂直显示。谁能指导我完成?
我正在调查swampdragon chat_example .在 router.py 中,根据文档 get_subscription_channel 给出 channel 名称。 当我尝试更改重新运行
我正在开发一个新的网络平台,该平台有用户、组,这些用户可以获得成就(每个组都有自己的成就)来完成特定任务,这些是我目前拥有的表格: 用户 团体 Group_users (用于存储用户的组,因为用户可以
我想以编程方式将电子邮件地址添加到 Google 网上论坛。虽然有这样做的方法,但似乎没有一种方法允许添加显示名称、昵称或仅添加名字和姓氏。 例如,代码(来自 Add members to googl
我正在尝试在 Twilio 号码和其号码将使用 java 请求获得的两个或多个用户之间创建一个 WhatsApp 群组,Twilio 或 twiML 可以支持此功能以及如何支持吗? 我进行了搜索,但我
我的 Facebook 群组网址是:http://www.facebook.com/groups/284064464943140/我读到组 ID 在标有“id=”或“groupid=”的 Url 中,
我正在开发一个社交网络应用程序,我想创建一个 Activity 源,以便人们可以及时了解他们所有的联系(经典的 Facebook 流)。我有一个名为 activity 的数据库表设置如下: activ
按照此处的“创建群组帖子”示例通过 LinkedIn API 发布到群组时: https://docs.microsoft.com/en-us/linkedin/compliance/integrat
我们开发了一个使用 Graph API 与 Facebook 交互的系统。在本例中,我尝试在群组中发布消息,并且得到以下返回: 我在此图中的请求: v2.3/402998003100416/feed?
我要去的流程是: 用户使用 Facebook 登录我们的网站。 用户使用 PayPal 或一些类似的服务支付费用。 允许用户访问特定的 Facebook 群组。 我对这个过程的工作原理并不特别挑剔,但
请有人帮助我如何使用 PHP 在 linkedin 组中发布新讨论。如果有人提供示例,我将不胜感激。 感谢所有回复。 可爱的程序员:) 最佳答案 您可以在此处通过最新版本的 Simple-Linked
我想将用户输入发布到 Facebook 群组提要。使用“user_groups”权限登录可以正常工作。 如果我尝试将修复字符串发布到组提要,它可以正常工作,但是当我使用输入字段的字符串时,发布函数不会
如果我们可以将 WhatsApp 组连接到 Telegram 组并从 whatsapp 接收消息到 Telegram ,反之亦然,那就太好了。是否有任何机器人程序可以做到这一点。如何设置桥梁或类似的东
有没有办法使用“yammer API”创建私有(private)群组? 最佳答案 你可以使用下面的代码 yam.platform.request({ // ya
我是一名优秀的程序员,十分优秀!