gpt4 book ai didi

image - Flutter:如何使用集合内的 Firestore 字段在应用程序中上传图像

转载 作者:行者123 更新时间:2023-12-03 04:20:12 25 4
gpt4 key购买 nike

...................................................我不是在问如何用户可以使用身份验证上传他/她的图像。
我在问如何使用 firestore(firebase) 更改应用程序内的图像,或者如何通过从我们的桌面上传图像来更改应用程序内的标题图像。
..................................................... ..................................................... ………………………………………………………………………………………………………………………………………………
这是我的代码

 body: StreamBuilder(
stream: Firestore.instance.collection('Event').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
const Text('No Event');
}
else if(snapshot.hasError){ const Text('No data avaible right now'); }
else {
return ListView.builder(
itemCount: snapshot.data.documents.length,
itemBuilder: (context, index) {
DocumentSnapshot myEvent = snapshot.data.documents[index];


return ListView(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
// scrollDirection: Axis.vertical,
children: <Widget>[
//1st box

Container(
margin: EdgeInsets.all(
SizeConfig.safeBlockHorizontal * 4),
child: Container(
child: new FittedBox(
child: Material(
// color: Colors.white,
elevation: 14.0,
borderRadius: BorderRadius.circular(24.0),
shadowColor: Color(0x802196F3),
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: <Widget>[
Container(
child: Padding(
padding: EdgeInsets.only(
left:
SizeConfig.safeBlockHorizontal *
4),
child: Column(
mainAxisAlignment:
MainAxisAlignment.spaceEvenly,
children: <Widget>[
Padding(
padding: const EdgeInsets.only(
left: 8.0),
child: Container(
child: Text(
'${myEvent['date_1']}',
style: TextStyle(
color: Colors.black54,
fontSize: 24.0,
fontWeight:
FontWeight.bold),
)),
),
SizedBox(
height: 10,
),
Padding(
padding: const EdgeInsets.only(
left: 8.0),
child: Container(
child: Column(
mainAxisAlignment:
MainAxisAlignment
.spaceEvenly,
children: <Widget>[

],
)),
),
],
),
),
),

Container(
width:
SizeConfig.safeBlockHorizontal * 60,
height:
SizeConfig.safeBlockHorizontal * 55,
child: ClipRRect(
borderRadius:
new BorderRadius.circular(24.0),
child: Image.network(
'${myEvent['image_1']}',
fit: BoxFit.fill,
alignment: Alignment.topRight,
),
),
),
],
),
),
),
),
),

最佳答案

如果您在 Firestore 中同时拥有图像和标题,那么您需要使用新的标题和图像更新数据库。要更新图像,您需要使用 image_picker 重新上传图像插入:

Future getImage() async {
var firebaseUser = await FirebaseAuth.instance.currentUser();
var image = await ImagePicker.pickImage(source: ImageSource.gallery);

if (image != null) {
StorageReference ref = FirebaseStorage.instance.ref();
StorageTaskSnapshot addImg = await ref.child("image/img").putFile(image).onComplete;
if (addImg.error == null) {
final String downloadUrl =
await addImg.ref.getDownloadURL();
await Firestore.instance
.collection("user")
.document(firebaseUser.uid)
.updateData({"url": downloadUrl, "name": imageName});
}
}
}
所以在这里你得到一个新图像,将它添加到 Firebase 存储,然后使用 updateData()您可以更新数据库中的图像名称和 img url。

关于image - Flutter:如何使用集合内的 Firestore 字段在应用程序中上传图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63052355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com