我需要完成的任务
我需要从其余的API(base64(中获取图像,并将单个图像写入Firebase云存储。成功写入映像后,将日志写入Firebase实时数据库。
有什么问题
好吧,我用AdminSDK初始化了Firebase应用程序(云函数(,因为我需要一些管理功能(例如绕过实时数据库规则(。根据Firebase文档,如果我使用AdminSDK,那么为了操作云存储,我必须使用"@谷歌云/存储";。
所以我查阅了"@谷歌云/存储";并发现为了上传文件,我必须调用方法";。上传";并指定文件的路径作为参数。
问题是我没有该文件的路径,因为它是base64字符串。我无法为它生成路径,因为nodeJS没有URL.createObjectURL方法,并且不可能对该方法进行polyfileing。另外,将该映像写入文件系统并不是解决方案,因为Cloud Functions是只读环境。
我尝试过的东西
-
Polyfileing URL.createObjectURL,但它不工作
-
使用nodeJS模块FS将REST API中的图像写入文件系统,上传到云存储,然后删除。
有没有解决这个问题的方法,或者推荐一些实现这种功能的方法
解决方案
我的第二个解决方案(使用fs编写临时文件(几乎是正确的,但我忘记将文件目标指定为/tmp
。在Firebase中,云功能是除/tmp
只读存储之外的一切。