Итак, в основном я пытаюсь загрузить файл .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;
}
}
}
На правила безопасности, где чтение и запись разрешены всем, кого я бы не хотел ... Я работал над этим весь день и убежище действительно не нашли решение, может ли кто-нибудь помочь?