Как я могу удалить все документы из коллекции, не удаляя саму коллекцию в firebase с помощью Javascript? - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть коллекция с именем mouse, в которой есть несколько документов, которые я добавил, щелкнув где-то в моем файле. Поля каждого документа этой коллекции: 'type', 'position x', 'position y' и 'timestamp'.

Я использовал следующий код для сохранения каждого клика по БД (другими словами, чтобы добавить новый элемент в коллекцию):

var setData = ref.set({
    'type': 'MC', 
    'x':  xPosition,
    'y': yPosition,
    'timestamp': firebase.firestore.FieldValue.serverTimestamp()
}) 

и этот код для распечатки всех документов в коллекции:

db.collection("mouse").where("type", "==", "MC")
    .onSnapshot(function(querySnapshot) {
        var dataPoints = [];
        querySnapshot.forEach(function(doc) {
           dataPoints.push(doc.data().type + " " + doc.data().x + " " + doc.data().y + " " + doc.data().timestamp);
        });
        console.log("Current data in database: ", dataPoints.join(", ") + "\n");
    });

Мой вопрос сейчас, как я могу удалить все эти документы, не удаляя коллекцию? Я ценю любую помощь, которую вы можете оказать

1 Ответ

2 голосов
/ 16 апреля 2019

Мой вопрос сейчас, как я могу удалить все эти документы, не удаляя собрание?

Нет способа удалить всю коллекцию, не удаляя все существующие документыпод этой конкретной коллекцией.Поэтому сначала удалите все документы, и коллекция будет удалена автоматически.В случае больших коллекций я рекомендую удалять документы небольшими порциями.Это происходит на стороне клиента, однако вы можете написать функцию в Облачные функции для Firebase , чтобы добиться того же, что и на стороне сервера.

Редактировать:

Согласно официальной документации относительно , как удалять коллекции с использованием Javascript:

Удаление коллекций из веб-клиента не рекомендуется.

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

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