gpt4 book ai didi

flutter - 如何使用Dissmissable从itembuilder中删除项目,并且该项目来自Firestore?

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

  @override
Widget build(BuildContext context) {
final textTheme = Theme.of(context).textTheme;
return Scaffold(
body: StreamBuilder<QuerySnapshot>(
stream: Firestore.instance
.collection('users')
.document(widget.uid)
.collection('lists')
.snapshots(),
builder: (context, snapshot) {
return !snapshot.hasData
? Center(child: CircularProgressIndicator())
: ListView.builder(
itemCount: snapshot.data.documents.length,
itemBuilder: (context, index) {
DocumentSnapshot data = snapshot.data.documents[index];
final list = snapshot.data.documents;
return Dismissible(
// Dismissed function
key: UniqueKey(),
onDismissed: (DismissDirection direction) {
setState(() {

// This is where I would like to remove the element
// snapshot.data.remove(index);

});
},
secondaryBackground: Container(
child: Center(
child: Text('Delete',
style: TextStyle(color: Colors.white),
textAlign: TextAlign.start),
),
color: Colors.red,
),
background: Container(),
child: Card(
child: Center(
child: new Container(
padding: new EdgeInsets.all(32.0),
child: new Column(
children: <Widget>[
new Text(data['listName']),
new Text(data['Description'])
],
),
),
),
),
direction: DismissDirection.endToStart,
);
},
);
},
),
  • 整个目标是使卡片元素消失并从Firestore中删除该项目。
  • 我考虑过将每个项目放入 map 中,然后根据 map 构建卡片。我宁愿不那样做。

  • 感谢您的帮助,希望我们可以一起解决这个问题:)
    先感谢您!

    最佳答案

    首先通过以下操作获取文档引用:
    对此进行迭代:snapshot.data.documents然后snapshot.data.documents[i].documentID然后这个:

    onDismissed: (direction) async {
    await Firestore.instance.runTransaction(
    (transaction) async {
    await transaction.delete(your doc ref here);
    },
    );
    },

    关于flutter - 如何使用Dissmissable从itembuilder中删除项目,并且该项目来自Firestore?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64021959/

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