Bro*_*oel 5 firebase google-cloud-functions google-cloud-firestore
我在这里处理一个设计模式。我正在创建一个应用程序,您可以在其中拥有关注者和追随者。类似于 Twitter、Instagram、x-social-network。
基本上,当用户打开“主页”视图时,我需要调用一个 Firebase 函数,该函数应该从 Firestore DB 获取关注者的活动源(如 twitter、insta 等)。
我想过做这样的事情:
对于此示例,假设用户A
关注用户B
B
执行应包含在 的提要中的操作时A
,我都会在 中添加一个新对象B.feed
。就像是:B.feed['timestampId'] = { eventType: 'new-tweet', photoId: 123123};
A
打开主页视图时,我调用“getFeed”Firebase 函数(这一步不是重要的一步)。A
关注的用户。A.following
用户(在本例中只有B
),我将获取该X.feed
对象。在本例中:B.feed
,我会将其返回给应用程序。这里有什么问题?如果A
关注超过 1 个用户(比方说,B
和C
),常识表明我应该获取.feed
用户B
和 的C
。按照旧的方式,使用 SQL,我会执行类似“SELECT FEED WHERE user_id IN ('B', 'C')”的操作。OR
但是,您可能知道, Firestore 中没有调用。
意思是,我不能这样做:
admin.firestore().collection('users')
.where('id', '=', 'B')
.where('id', '=', 'C')
.get()
Run Code Online (Sandbox Code Playgroud)
所以,我实际上应该做的是,n
查询的调用次数,其中关注的n
用户数量是多少。A
admin.firestore().collection('users')
.where('id', '=', 'B')
.get()
admin.firestore().collection('users')
.where('id', '=', 'C')
.get()
Run Code Online (Sandbox Code Playgroud)
等待所有这些承诺,然后返回.feed
所有这些调用。
感觉就像......我不知道......丑陋(在你可以想象的所有意义上)。
你们对于如何实现这样的事情有更好的想法吗?
归档时间: |
|
查看次数: |
453 次 |
最近记录: |