你好,我有一个用歌曲学习习语的应用程序。我使用Firestore作为我的数据库。
实际数据结构:
我想添加的功能,每个用户可以知道什么单词,而发挥作为一种词汇。
- Users
-Vocabulary
-Word1
-wordId
-timesPlayed
-lastTimeAt(unix)
-translation
- Words
-Word
-translation
(more word data)我认为每次添加歌曲时,都会触发一个Firebase函数,该函数将分隔歌曲中的所有单词,并验证该单词是否存在于应用程序的一般词汇表中,以及是否未添加。每当用户播放一首歌曲时,该词就会添加到他们自己的语言中(仅在已播放的歌曲中),如果已经存在,则有练习次数和最后一次练习的日期。
用户的词汇表在一般的词汇表中只保留对棕榈树的引用,因为他们可以对所有用户进行协作编辑。
我遇到的问题是,许多经文都是用Firestore制作的,每个播放一首歌的用户大约有300个单词,与我目前没有这个功能(2篇文章)相比,这是一种优化的方法。
发布于 2018-10-04 06:16:34
如果您想将写入Firestore的文章数量最小化。
我要做的是有三个不同的目标:
然后,每个对象都将该单词的id作为键。对象二和对象三个没有问题,但是,timesPlayed对象在客户端或运行它的云函数上会变得安静、昂贵。(我会在客户中这样做)。
您可以将三个对象嵌套在一个词汇表中,并在更新用户文档时使用合并设置为true的选项。
希望能帮上忙。
https://stackoverflow.com/questions/52638419
复制相似问题