【问题标题】:How to create UNDO button, flutter firebase如何创建UNDO按钮,颤动firebase
【发布时间】:2022-01-12 22:53:10
【问题描述】:

在我的项目中,我有一个删除按钮,可以从 firebase firestore 中删除一些数据,我想做的是显示一个带有 undo 字的小吃栏,当按下它时,该过程将被取消并不会删除任何数据。我还没有找到解决办法。有可能吗?

【问题讨论】:

    标签: firebase flutter dart google-cloud-firestore


    【解决方案1】:

    Firestore 中的删除是永久性的;一旦你删除了一个文档,它就消失了。

    如果您想提供撤消删除的选项,您需要:

    • 要么在另一个集合中创建文档,然后再从主集合中删除它。例如,一个常见的实现是拥有一个包含已删除文档的子集合,甚至是每个文档的整个历史记录。
    • 或者您将文档标记为已删除,而不是真正删除它们。这种类型的标记通常称为墓碑。

    【讨论】:

      【解决方案2】:

      您可以使用Timer 创建一个可以在计时器用完之前随时取消的回调。

      import 'dart:async';
      
      void main() {
        
        final cancelable = Timer(Duration(seconds: 5), () {
            // The delete function should be here
            print('canceled after 3 seconds');
          });
          
        Timer(Duration(seconds: 3), cancelable.cancel);
        
      }
      

      在此示例中,print() 回调在三秒后被取消,但您可以将 cancelable.cancel() 函数作为撤消按钮的回调传递,然后通过在 Firestore 上单击它来取消删除Timer 用完了

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-10-31
        • 2021-08-18
        • 2018-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-12
        相关资源
        最近更新 更多