Как ограничить размер массива в Firestore при записи? - PullRequest
0 голосов
/ 11 июля 2020

Кто-нибудь знает, как ограничить массив так, чтобы новые элементы вставлялись, а старые отбрасывались при одной и той же записи? 1003 *

                    // * Store notification
                    // Users collection
                    const usersCollection = db.collection('users').doc(uid).collection('notifications').doc();

                    // Write this notification to the database as well
                    await usersCollection.update({
                        count: admin.firestore.FieldValue.increment,
                        notifications: admin.firestore.FieldValue.arrayUnion({
                            'symbol': symbol,
                            'companyname': companyname,
                            'change': priceDifference,
                            'changeDirection': directionOperatorHandler,
                            'updatedPrice': symbolLatestPrice,
                            'timestamp': currentTimestamp,
                        })
                    });

Написано машинописным текстом

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

Причина, по которой я использую массив для хранения моих уведомлений, - потому что я ожидаю много писем.

1 Ответ

1 голос
/ 11 июля 2020

Для этого нет простой конфигурации. Ваш код должен соответствовать вашим требованиям следующим образом:

  1. Чтение документа
  2. Изменение массива в памяти
  3. Проверка, что размер находится в пределах
  4. Записываем документ обратно
...