【发布时间】:2018-09-09 12:56:35
【问题描述】:
我正在努力实现以下目标。但是,我不知道,因为我是 firebase 的初学者。
- 用户正在尝试上传带有图片的帖子
- 图片是从网络浏览器中选择的
- 当用户单击保存按钮时,我正在将所选图像上传到 firbase 存储并获取下载 URL。
- 将带有下载 URL 的帖子数据插入到 Firestore 数据库。
到此为止,我已经完成了。现在,我需要调整上传图片的大小。
为此,我正在尝试使用 Cloud Functions,每当将新条目添加到 firestore 数据库时,我都会调用 Cloud fountion,它可以访问图像的下载 URL,使用此下载 URL,我需要调整大小图片。请帮忙。
如果有更好的方法来实现这一点,请告诉我。 (我知道应该有:P)
编辑 1
感谢您弗兰克的回复。
我有下面的云函数,每插入一个帖子就会调用它。我从 eventSnapshot 获取图像的下载 URL。我需要调整该位置的图像大小。请帮忙。
exports.resizeImage = functions.firestore
.document('posts/{postId}')
.onCreate(event => {
var eventSnapshot = event.data.data();
//In this eventSnapshot I am getting the document, and I can get the download URL from the document
});
我已经分析了创建缩略图的示例,但为此,我需要
存储对象,只有当存储对象改变时才会调用。但是,我需要在 firestore 中调用 onWrite 时创建缩略图。
exports.generateThumbnail = functions.storage.object().onChange((event) => {
// File and directory paths.
const filePath = event.data.name;
});
请告诉我,如何通过检测 firestore 中的 onWrite 并使用 downLoadURL 来进行图像调整大小操作。
【问题讨论】:
-
听起来您正在顺利构建应用程序,但在特定步骤(调整图像大小)方面遇到了问题。在这种情况下,最好将您的问题集中在那个特定的问题上,展示您尝试过的内容。最好的方法是通过creating a minimal, complete, verifiable example,它可以重现问题,而我们无需了解您的应用程序的其余部分。如果您正在为如何开始调整图像大小而苦恼,请查看此示例:github.com/firebase/functions-samples/tree/master/…
-
@FrankvanPuffelen 非常感谢您的评论,我已经编辑了这个问题。请帮忙。提前谢谢你。
-
@FrankvanPuffelen 请提出您的建议....
-
您有没有找到可行的解决方案?我使用的是 FirebaseDatabase 而不是 Firestore,但遇到了同样的问题。我已经成功生成了一个缩略图,但将下载 URL 存储在我的用户数据中已被证明是一件令人头疼的事情。
标签: javascript firebase google-cloud-functions google-cloud-firestore firebase-storage