Я получаю следующую ошибку при попытке загрузить файл в хранилище.
[ { domain: 'global',
reason: 'forbidden',
message: '<name>@<app>.iam.gserviceaccount.com does not have storage.objects.create access to <app>.appspot.com/temp.txt.' } ]
Вот как я загружаю
const serviceAccount = require('./serviceaccount.json')
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
storageBucket: "<app>.appspot.com"
})
const storage = admin.storage()
storage.bucket().upload('<my file path>')
У моей учетной записи службы есть права владельца и администратора хранилища в IAM. Итак, у меня вопрос: что я делаю не так и / или какой доступ мне нужен, чтобы предоставить моей служебной учетной записи, чтобы иметь возможность загружать файлы в хранилище Firebase из функций Firebase?
@DougStevenson Это действительно работает! Спасибо!





Благодаря комментарию Дуга Стивенсона, для меня это решило не указание учетной записи службы, а использование учетной записи по умолчанию.
admin.initializeApp()
В случае, если у вас будет несколько сегментов не по умолчанию, вам нужно сначала создать эти сегменты вручную в консоли проекта Firebase. После этого вы сможете легко писать в эти корзины. PS Если у вас все еще есть проблемы: у меня есть "Администратор объекта хранилища" в разделе IAM в учетной записи службы администратора Firebase.
При инициализации без аргументов вы должны иметь возможность загружать в корзину по умолчанию, используя учетную запись службы по умолчанию:
admin.initializeApp(). Это работает?