javascript - 如何从 Cloud Firestore 中检索多个文档,但没有重复?
问题描述
我想从文档列表中随机提取文档。目前,它有效,但我会再次收到相同的文件,但我不想。
let qnumber = Math.floor((Math.random() * 3) + 1);
const dialogflowAgentDoc = db.collection('esequiz').doc(''+qnumber);
那么如何编辑它,以免从随机文档中提取任何重复项?
所以我的云火库看起来像这样,因此我使用 qnumber 来确定组成的随机数,然后调用到 db 集合中。
]
解决方案
您需要跟踪检索到的文档的 ID,并丢弃已经检索到的随机 ID。
伪代码:
class UniqueRandomIdProvider()
{
alreadyRetrieved: number[] = [];
public getNewRandomId(): number {
while(true) {
{
const randomId = this.getRandomId();
if (!this.alreadyRetrieved.contains(randomId) {
return randomId;
}
}
}
private getRandomId(): number {
return Math.floor((Math.random() * 3) + 1);
}
}
推荐阅读
- node.js - 如何检查是否在 discord.js 中发布了反应
- cmake - 在 POST_BUILD 步骤调用宏或函数
- javascript - 在 yii2 框架中使用 ummalqura 模式 javascript 显示回历日历
- reactjs - 如何使用 React Dnd 测试拖放
- azure - Azure 数据工厂管道:对可变活动进行条件检查
- javascript - Karma Jasmine 具有可观察的代码覆盖率,但未完全覆盖
- .net - Azure Monitor - REST API 自定义日志 - .Net
- r - 如何在R中将英尺转换为厘米?
- excel - Sum 命名范围由几列和几行组成
- python - 比较 Pandas 列中的重叠