如何使用firebase函数返回保存在firebase存储中的文件的json内容
Posted
技术标签:
【中文标题】如何使用firebase函数返回保存在firebase存储中的文件的json内容【英文标题】:How to use firebase functions to return the json content of a file saved in firebase storage 【发布时间】:2020-11-25 00:19:07 【问题描述】:我想经常从云端更新客户端 indexeddb 数据存储。 所以我在想的是调用firebase函数并让函数在firebase存储中获取一个更新的json文件,然后将该json文件的内容返回给客户端,客户端随后将更新indexeddb。
我试图用这个代码返回这个json file
exports.updateProductCatalogue = functions.https.onCall(async (data, context) =>
const filepath = data.filepath
const bucketname = data.bucket
const bucket = storage.bucket();
const remoteFile = bucket.file("storeid.json");
let buffer = '';
remoteFile.createReadStream()
.on('error', function(err) console.log(err))
.on('data', function(response)
buffer += response
)
.on('end', function()
//console.log(buffer);
return buffer
)
)
当我尝试将代码部署到云时,它会抛出此错误
firebase-functions/functions/node_modules/@google-cloud/storage/node_modules/p-limit/index.js:30
catch
^
SyntaxError: Unexpected token
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:617:28)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
我能够将错误来源缩小到此代码
const bucket = storage.bucket();
如何通过 firebase 函数返回文件中的 json 内容?
【问题讨论】:
【参考方案1】:这不是您的代码(呸!)的问题,而是您的项目配置的问题。 Try using node 10+ to address the exception syntax error。更新node+npm后别忘了更新package.json
:
"...": "...",
"engines":
"node": "10",
"npm": "6"
【讨论】:
我检查了我的 package.json 并且我是 "node": "10" 您当前安装的版本怎么样?在终端中,尝试node -v & npm -v
。
v8.13.0(node) 和 6.4.1 (npm)
你需要更新你的node版本到10+,试试nvm install-latest-npm
,如果你还没有安装nvm,我强烈建议你这样做=)以上是关于如何使用firebase函数返回保存在firebase存储中的文件的json内容的主要内容,如果未能解决你的问题,请参考以下文章
如何在 firebase 托管的 webapp 中获取 firebase 函数 URL?
Firebase createUserWithEmailAndPassword()返回HTTP POST错误以及错误对象