Экспорт firestore в традиционный файл json - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь сделать что-то "старой школы", однако я не эксперт в Firebase или NodeJs, поэтому мне нужна помощь профессионалов.

это мой код.

exports.firest = functions.firestore
 .document('produkter/{produkterID}')
 .onUpdate((snap, context) => {
     const db = admin.firestore();
     const produkterRef = db.collection('produkter');
     return produkterRef.get()
        .then((querySnapshot) => {
         const orders = [];
         querySnapshot.forEach(doc => {
             const order = doc.data();
             orders.push(order);
         });
         const json = JSON.stringify(orders);
         console.log(json)
         const blob = Buffer.from([json],{type:'application/json'});
          admin.storage().bucket('gs://aa.appspot.com').upload('produkter.json', {metadata: {blob}})
             admin.storage().bucket('gs://aa.appspot.com').put(blob).then(function(snapshot) {
             console.log('Uploaded a blob or file!');
         }) 
     });})

, но это вызывает ошибку на консоли функций firebase. Может ли кто-нибудь помочь мне с этим?

это ошибка:

TypeError: admin.storage(...).bucket(...).put is not a function
at produkterRef.get.then (/srv/index.js:56:72)
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:229:7)

С наилучшими пожеланиями

1 Ответ

0 голосов
/ 13 февраля 2020

В сообщении об ошибке сообщается, что для объекта Bucket не существует метода с именем put().

Если у вас есть данные в памяти для загрузки, вам следует подумать о создании Файл объект и использование save () для него.

Вы также не обрабатываете обещания правильно, поэтому вы столкнетесь с другими проблемами, если не сделаете этого. Cloud Functions требует, чтобы вы правильно завершили свои функции , возвращая обещание, которое разрешается, когда вся работа asyn c завершена.

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