我使用带签名的url并从客户端上传文件。
当我的应用程序的用户从客户端使用签名的url将文件上传到云存储时。客户端代码如下:
upload(signedUrl, file) {
return fetch(signedUrl, {
method: 'PUT',
body: file
}).then((res) => {
console.log('upload success');
console.log('res: ', res);
});
},会触发云函数对上传的文件进行验证。
如何知道云函数中的用户id?
因为我想发布一个带有用户id和gcs对象名的validationPassed消息,以通知我的后端服务器根据用户id将这个gcs对象名保存到数据库中。
发布于 2019-07-15 12:14:00
通过REST API上传文件时,没有任何类型的用户标识与该文件相关联。您可以尝试在上传时设置元数据,但这并不安全,任何人都可以传递任何ID (或者不传递ID)。
据我所知,上传文件并获得安全用户的唯一安全方法是使用Firebase客户端库上传,同时使用Firebase身份验证,将UID放在元数据或文件路径中,然后使用安全规则检查实际UID是否与声明的UID匹配。
https://stackoverflow.com/questions/57033152
复制相似问题