Firebase云函数图像大小调整
下面的例子 处理图像时如何通知客户端 我想有一个表单上传一张照片,并将其调整为多个大小。我如何让客户知道云功能何时完成 我正在使用Firebase云函数图像大小调整,firebase,google-cloud-functions,firebase-storage,Firebase,Google Cloud Functions,Firebase Storage,下面的例子 处理图像时如何通知客户端 我想有一个表单上传一张照片,并将其调整为多个大小。我如何让客户知道云功能何时完成 我正在使用firebase/storage上载图像客户端,然后我可以使用一个函数监听要上载的文件functions.storage.object().onFinalize并处理/调整图像大小。当云功能完成时,是否有对客户端的回调,或者是否有对我需要设置发布/订阅的回调?您的最终新图像(小图像或其他任何图像)会有一些URL,比如storageCompany.net/123123.
firebase/storage
上载图像客户端,然后我可以使用一个函数监听要上载的文件functions.storage.object().onFinalize
并处理/调整图像大小。当云功能完成时,是否有对客户端的回调,或者是否有对我需要设置发布/订阅的回调?您的最终新图像(小图像或其他任何图像)会有一些URL,比如storageCompany.net/123123.jpg
因此,在您的实时Firebase中,您将有一些提供这些URL的位置
所以,也许有点像
user/NNNN/photos/thumbnails
所以说清楚一点,你可能
user/NNNN/photos/thumbnails/726376733677.jpg
user/NNNN/photos/thumbnails/808080188180.jpg
user/NNNN/photos/thumbnails/363636636636.jpg
现在你要加上
user/NNNN/photos/thumbnails/123123123123.jpg
因此,实际上,你的应用程序只需观察新项目(即字符串-URL)出现在该位置
为了清楚起见,假设您有一个ios或droid应用程序,可以显示“任何类型的图像”,这是一个Firebase项目 因此,在您的示例中是“由服务器创建”的“缩略图” 但是你展示什么样的图像并不重要 在一个
- Firebase项目
- “显示图像”
user/NNNN/photos/thumbnails
所以说清楚一点,你可能
user/NNNN/photos/thumbnails/726376733677.jpg
user/NNNN/photos/thumbnails/808080188180.jpg
user/NNNN/photos/thumbnails/363636636636.jpg
现在你要加上
user/NNNN/photos/thumbnails/123123123123.jpg
因此,实际上,你的应用程序只需观察新项目(即字符串-URL)出现在该位置
为了清楚起见,假设您有一个ios或droid应用程序,可以显示“任何类型的图像”,这是一个Firebase项目 因此,在您的示例中是“由服务器创建”的“缩略图” 但是你展示什么样的图像并不重要 在一个
- Firebase项目
- “显示图像”
享受您必须在客户和您的职能部门之间安排一个交换点。通常,这将是数据库中的某个已知位置,函数将在该位置写入结果,客户端可以侦听更改以了解工作何时完成
您正在使用的示例需要修改,以允许客户端和服务器提前就唯一位置达成一致。您必须在客户端和您的功能之间安排一个交换点。通常,这将是数据库中的某个已知位置,函数将在该位置写入结果,客户端可以侦听更改以了解工作何时完成
您正在使用的示例需要修改,以允许客户端和服务器提前就唯一位置达成一致。Firebase图像大小调整存在两个问题—(1)图像大小调整完成后通知客户端很难,以及(2)您永远不知道客户端应用程序可能需要的确切大小(假设您正在构建响应性应用程序) 这两个问题可以通过使用动态图像大小调整方法来解决。客户端应用程序可以直接将图像上传到Google存储(通过签名URL和PUT请求),一旦上传完成,它可以立即请求调整大小的图像。例如: -原始图像 -动态调整图像大小 调整大小的图像可以缓存在Google存储桶和CDN中
$ npm install image-resizing --save
const{createHandler}=require(“图像大小调整”);
module.exports.img=createHandler({
//源图像所在的位置。
//例如:gs://s.example.com/image.jpg
sourceBucket:“s.example.com”,
//需要存储变换后的图像的位置。
//例如:gs://c.example.com/w_80,h_60/image.jpg
cacheBucket:“c.example.com”,
});
Firebase图像大小调整有两个问题-(1)图像大小调整完成后通知客户端很困难,(2)您永远不知道客户端应用程序可能需要的确切大小(假设您正在构建响应式应用程序) 这两个问题可以通过使用动态图像大小调整方法来解决。客户端应用程序可以将图像直接上传到谷歌存储(通过签名URL)