Как получить несколько документов из облачного хранилища, но без дубликатов? - PullRequest
1 голос
/ 08 января 2020

Я хочу случайно вытащить документы из списка документов. И в настоящее время это работает, но я снова получу тот же документ, но я не хочу.

let qnumber = Math.floor((Math.random() * 3) + 1);
const dialogflowAgentDoc = db.collection('esequiz').doc(''+qnumber);

Так как мне отредактировать его так, чтобы я не извлекал дубликаты из случайного документа вытащил?

Итак, мой облачный пожарный магазин выглядит следующим образом, поэтому я использую qnumber, чтобы определить случайное число, составленное и затем вызванное в коллекцию БД.

enter image description here]

1 Ответ

0 голосов
/ 08 января 2020

Вам необходимо отслеживать идентификаторы найденных документов и отбрасывать случайные идентификаторы, которые уже были получены.

Псевдокод:

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);
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...