Еще один способ, по которому я чувствую, что это может сработать, - преобразовать файл JSON в буфер и затем выполнить действие, подобное этому (фрагмент кода ниже). Я написал статью о том, как вы можете сделать это, используя Google Cloud Storage, но он отлично работает с хранилищем Firebase. Единственное, что вам нужно изменить - это файл «service-account-key. json».
Ссылку на статью можно найти здесь: Ссылка на статью на носителе
const util = require('util')
const gc = require('./config/')
const bucket = gc.bucket('all-mighti') // should be your bucket name
/**
*
* @param { File } object file object that will be uploaded
* @description - This function does the following
* - It uploads a file to the image bucket on Google Cloud
* - It accepts an object as an argument with the
* "originalname" and "buffer" as keys
*/
export const uploadImage = (file) => new Promise((resolve, reject) => {
const { originalname, buffer } = file
const blob = bucket.file(originalname.replace(/ /g, "_"))
const blobStream = blob.createWriteStream({
resumable: false
})
blobStream.on('finish', () => {
const publicUrl = format(
`https://storage.googleapis.com/${bucket.name}/${blob.name}`
)
resolve(publicUrl)
})
.on('error', () => {
reject(`Unable to upload image, something went wrong`)
})
.end(buffer)
})