Как удалить данные из firebase через функции? - PullRequest
0 голосов
/ 16 февраля 2019

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

Дерево БД выглядит так: enter image description here

РЕДАКТИРОВАТЬ:

Вот что я попробовал:

    const functions = require('firebase-functions');
    const admin = require('firebase-admin');
    admin.initializeApp();
exports.deleteoldnotifications = functions.https.onRequest((req: any, res: { status: (arg0: number) => { send: () => void; }; }) => {
    const timeNow = new Date();
    const db = admin.firestore();
    db.collection('notification').get().then((snap: { forEach: (arg0: (collection: any) => void) => void; }) => {
        snap.forEach((collection: any) => {
            db.collection('notification').doc(collection.id).collection('messages').get().then((snapshot: { forEach: (arg0: (doccollection: any) => void) => void; }) => {
                snapshot.forEach((doccollection) => {
                    const durations = new Date(doccollection.data().duration);
                    if (durations <= timeNow) {
                        doccollection.delete();
                        console.log('duration: ',doccollection.duration);
                    }
                });
            });
        });
    });
    return null;
});

Функция закончилась с тайм-аутом.

Как закинуть коллекцию уведомлений и удалить старые?

1 Ответ

0 голосов
/ 16 февраля 2019

Не существует такой вещи, как functions.firestore, которая точно соответствует сообщению об ошибке.

Если вы хотите получить доступ к Firestore в функции, которая не запускается из самого Firestore, вы используете Admin SDKсделать это.Вы уже импортируете Admin SDK в свой код, поэтому все, что нужно, это:

admin.firestore().doc(...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...