Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Firebase分散/分发500000条记录?_Firebase_Firebase Realtime Database_Large Scale - Fatal编程技术网

如何使用Firebase分散/分发500000条记录?

如何使用Firebase分散/分发500000条记录?,firebase,firebase-realtime-database,large-scale,Firebase,Firebase Realtime Database,Large Scale,要求: 用户可以注册到公司并免费退订 用户只能获得他们注册的公司的帖子 用户不应该看到他们已经喜欢/不喜欢的帖子 目前,我们正在做的是,当用户加入一家公司时,我们将相关帖子复制到用户user\u Feed,然后客户端获取帖子 现在假设我们有4万个帖子和5万个用户。每个加入公司的用户,我们都需要将40K的数据复制到用户提要。或者,当一家公司发布一篇新帖子时,我们需要构建一个巨大的扇出对象来传递给500KUSER\u FEEDs 这是不可伸缩的 David East在他的陈述中说,扇出技术支持数

要求:

  • 用户可以注册到公司并免费退订
  • 用户只能获得他们注册的公司的帖子
  • 用户不应该看到他们已经喜欢/不喜欢的帖子
目前,我们正在做的是,当用户加入一家公司时,我们将相关帖子复制到用户
user\u Feed
,然后客户端获取帖子

现在假设我们有4万个帖子和5万个用户。每个加入公司的用户,我们都需要将40K的数据复制到用户提要。或者,当一家公司发布一篇新帖子时,我们需要构建一个巨大的扇出对象来传递给500K
USER\u FEED
s

这是不可伸缩的

David East在他的陈述中说,扇出技术支持数百万条记录,但即使在他的例子中,他如何处理100万追随者

我们觉得我们走错了方向。
有更好的办法解决我们的问题吗

我们目前的结构如下:

Companies(~20 companies) 
{
    companyId:  {
        ...comanyInfo
    }
}

Users (~500K users)

  uid: {
     ...userInfo
   }

User_Companies (500k * max(20 companies)) 

 uid: {
    company1: true,
    company2: true,
    ....
 }  


Company_Users (20 * max(500K users)) 

     companyId: {
        uid1: true,
        uid2: true,
        ....
     }   

 Company_POSTS (2K posts/company) 

 {
    companyId: {
        postId: {
            ...postInfo
        }
    }
 }

 User_Feed (For each user (500K))
  {
    uid: 
        posId : {
            like: true
        }
 }
这篇文章也是在北京开设的