Google cloud firestore Firebase云函数无法写入存储

Google cloud firestore Firebase云函数无法写入存储,google-cloud-firestore,google-cloud-functions,firebase-storage,Google Cloud Firestore,Google Cloud Functions,Firebase Storage,我尝试创建一个云函数,每当我在firestore的集合中添加新文档时,它都会在Firebase存储中写入一个文件 我的虚拟代码非常简单: const functions = require('firebase-functions'); const admin = require('firebase-admin'); exports.writeToStorage = functions.firestore.document("problems/{problem_id}").onCreate(

我尝试创建一个云函数,每当我在firestore的集合中添加新文档时,它都会在Firebase存储中写入一个文件

我的虚拟代码非常简单:

const functions = require('firebase-functions');
const admin = require('firebase-admin');


exports.writeToStorage = functions.firestore.document("problems/{problem_id}").onCreate(
    (snap, context) => {
        admin.initializeApp();
        var storage = admin.storage();
        var fileStream = storage.bucket("test").file("test.txt").createWriteStream();
        fileStream.write("Hello, World!");
        fileStream.on('error', (err) => {
            console.error(`${ this.archive }: Error storage file write.`);
            console.error(`${ this.archive }: ${JSON.stringify(err)}`);
        });
        fileStream.end();
    }
);
但不知怎的,我无法让它工作,这是我从日志中得到的错误:

{“代码”:403,“错误”:[{“域”:“全局”,“原因”:“禁止”,“消息”:“xxx开发人员”-exxxe@appspot.gserviceaccount.com没有对test/test.txt的storage.objects.create访问权限。“}],“消息”:“xxx dev”-exxxe@appspot.gserviceaccount.com没有对test/test.txt的storage.objects.create访问权限。“}


我尝试在google cloud console上设置IAM角色,并将该帐户和默认firebase admin sdk帐户设置为“存储管理员”角色,但仍然出现相同的错误

首先,尝试放置
admin.initializeApp()进入全局空间,在
要求下?在将admin与存储桶一起使用时。@JamesPoag不需要将init放在全局空间中。现在怎么写还可以。这里我怀疑的是,在异步工作完成时,没有使用任何承诺来指示云函数。