【问题标题】:Save Bookmark Article in Firebase Flutter在 Firebase Flutter 中保存书签文章
【发布时间】:2019-05-17 07:10:12
【问题描述】:

在 Flutter 应用中我想获取数据列表
我想将文章列表中的任何文章保存在 Fire 商店数据库中的书签,但是当书签按钮每次点击同一篇文章时都会保存在数据库中。我希望那篇文章第一次保存在数据库中 有没有人引导我正确的方式?非常感谢任何帮助! 我的代码

 import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
void main() => runApp( MyHomePage());

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePage createState() => _MyHomePage();
}

class _MyHomePage extends State<MyHomePage> {
  String title;
  String subtitle;
  int id;
  Firestore firestore = Firestore.instance;
  DocumentSnapshot document;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text('jdj'),
        ),
        body: Container(
          child: ListView(
            children: <Widget>[
              stremBuilder(),
              Container(
                height: 310,
                color: Colors.amber,
              )
            ],
          ),
        ));
  }

  Widget stremBuilder() {
    return Container(
      height: 200,
      child: StreamBuilder(
        stream: Firestore.instance.collection("User").snapshots(),
        builder: (context, snapshot) {
          if (!snapshot.hasData)
            return Center(
              child: Text("Loding"),
            );
          return ListView.builder(
            itemCount: snapshot.data.documents.length,
            itemBuilder: (context, index) {
              return listItem(context, snapshot.data.documents[index]);
            },
          );
        },
      ),
    );
  }

  Widget listItem(BuildContext context, DocumentSnapshot document) {
    return ListTile(
      title: Text(document["title"]),
      subtitle: Text(document["subtitle"]),
      trailing: GestureDetector(
          child: Icon(Icons.bookmark),
          onTap: () {
            setState(() {
              saveData(id, document);
            });
          }),
    );
  }

  Map<String, dynamic> savedata = {};
  saveData(int id, DocumentSnapshot document) {
    Map<String, dynamic> savedata = {
      "id": id,
      "saveTitle": document["title"],
      'saveSubtitle': document["subtitle"]
    };
    Firestore.instance.collection("savedata").add(savedata);
  }
}

【问题讨论】:

    标签: firebase flutter google-cloud-firestore flutter-dependencies


    【解决方案1】:

    它看起来在正确的轨道上。检查代码,点击的列表项应该被保存。如果您要查找的只是一次保存“书签”,然后再次单击它应该会删除保存的书签。然后再按一下就可以删除文件了。

    await FirebaseFirestore.instance.collection('savedata').doc(docId).delete();
    

    确保跟踪您要删除以用作参考的文档的 ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-31
      • 2020-09-23
      • 1970-01-01
      • 1970-01-01
      • 2013-08-02
      • 2023-03-21
      相关资源
      最近更新 更多