如何解决如何在Flutter应用中创建基于图像的Feed?
我正在尝试在Flutter上创建一个instagram风格的应用,这是Feed唯一的区别,该区别不是由用户上传的图片生成的。 我已将要显示给用户的所有文件上传到Cloud Storage。我尝试了两种显示提要的方法,但均失败了。
方法1 使用谷歌云功能 我试图模仿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
});
}
方法2 在颤动中使用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吗?
解决方法
好的,因此基本上可以在Firebase存储中上载图像(据我了解,这是您在第一种方法中所做的),如果应用程序可以访问Firebase存储,则可以使用图像的URL和网络图片小部件以加载图片。要创建提要,请获取图像URL列表,并使用ListView.builder生成网络图像列表并使用您加载的URL。您还可以使用cached network image获得更好的感觉和前端性能。
编辑:
这是获取imageURL solution
的方法版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。