Проблема с загрузкой в ​​Firebase Storage с использованием облачных функций с Firebase Admin SDK - PullRequest
0 голосов
/ 27 апреля 2020

Итак, в основном я пытаюсь загрузить файл .txt, добавить к нему текст и загрузить его обратно в облачное хранилище Firebase.

Исходное содержимое файла - яблоки, груши и апельсины. После загрузки файла и добавления новой строки текста к нему. Стоит сказать, яблоки, груши, апельсины, выходя рано.

Когда я использую правила безопасности по умолчанию, я получаю

error: {code: 403 message: "Permission denied. Не удалось выполнить эту операцию"}

Код, который я использую для загрузки этого файла, выглядит следующим образом (он написан на машинописи между прочим)

Со следующим кодом

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
const os = require('os');
const fs = require('fs');
const path = require('path');admin.initializeApp(functions.config().dbconfig);

const fileName = 'filecopy.txt'
const destination = 'text/filecopy.txt'
const tempFilePath = path.join(os.tmpdir(), fileName)
console.log( `Writing out to ${tempFilePath}`)

const bucketRef = admin.storage().bucket(functions.config().dbconfig.storage_bucket);


bucketRef.file(`text/filecopy.txt`).download(function (error, contents) {
    console.log(error)
    console.log(contents.toString())
    console.log(contents.toString().concat("\nexiting early"))
    fs.writeFileSync(tempFilePath, contents.toString().concat("exiting early") )

    bucketRef.upload(tempFilePath, {
         destination,
         metadata: {
            contentType: 'text/plain',

        }
        })
    .then( () => fs.unlinkSync(tempFilePath) )
    .catch(err => console.error('ERROR inside upload: ', err) );
})

Одна странность в том, что этот код работает , но только если я изменю правила безопасности по умолчанию

 service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

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

...