【发布时间】:2020-12-26 20:02:21
【问题描述】:
我正在尝试在 Flutter 上创建一个 instagram 风格的应用程序,唯一的区别是提要是经过策划的,而不是由用户上传的图像生成的。 我已经上传了我想在 Cloud Storage 上显示给用户的所有文件。我尝试了两种不同的方法来显示提要,但都失败了。
方法一 使用谷歌云功能 我试图模仿this。基本上,我试图使用云功能来生成文件的链接,然后将它们输入到 Fire Store 中的文档中,然后我会查询 Firestore。我部署了谷歌云存储功能,尝试使用 getSignedUrl 但之后几乎被卡住了。我什至不确定如何获取 URL,更不用说为每个 URL 制作文档了
const functions = require('firebase-functions');
var admin = require("firebase-admin");
var serviceAccount =require("myname.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "myname.com"
});
/* const myFile = admin.storage().bucket().file('path/to/my/file');
myFile.getSignedUrl({action: 'read', expires: someDateObj}).then(urls => {
const signedUrl = urls[0]
}); */
function getSignedUrl() {
const gcs = require('@google-cloud/storage')({keyFilename: 'myname.json'});
// ...
const bucket = gcs.bucket(bucket);
const file = bucket.file(fileName);
return file.getSignedUrl({
action: 'read',
expires: '03-09-2491'
}).then(signedUrls => {
// signedUrls[0] contains the file's public URL
});
}
方法二 在颤振中使用 for 循环 I tried to do what this guy did 我制作了一个包含所有文件名称的文本文件,然后将它们附加到链接中。使用 for 循环,我能够生成一个基本的提要,但它会重复图像并且不会显示超过 10 个图像。
while(i != numOfImages && i != imageNames.length) {
String filePath = imageFolderPath + imageNames[i];
// imageNames.shuffle();
imageUrls.add(await getDownloadUrl(filePath));
i++;
}
return imageUrls;
}
有人可以帮我解决方法1吗?
【问题讨论】:
标签: flutter dart firebase-storage feed