Xamarin Forms Firebase DeleteAsync 逻辑 - 为啥删除第一项而不是第二项?

Posted

技术标签:

【中文标题】Xamarin Forms Firebase DeleteAsync 逻辑 - 为啥删除第一项而不是第二项?【英文标题】:Xamarin Forms Firebase DeleteAsync logic - Why deletes first item instead of second item?Xamarin Forms Firebase DeleteAsync 逻辑 - 为什么删除第一项而不是第二项? 【发布时间】:2021-08-09 10:54:37 【问题描述】:

我的代码中正在做的事情是当我删除第二个块而不删除第一个块时,被删除的是第一个块而不是选定的第二个块。”

    //This is where the listview item tapped
       var certification = args.Item as Certifications;
        if (certification == null) return;

        await Navigation.PushAsync(new CertificationDetailsPage(certification));
        lstCertifications.SelectedItem = null;

    // This is the code to delete
       var toDeleteCertification = (await client
            .Child("Table => Certifications")
            .OnceAsync<Certifications>()).FirstOrDefault(a => a.Object.FullName == fullName || a.Object.Email == email || a.Object.Address == address
            || a.Object.Occupation == occupation || a.Object.Age == age || a.Object.Sex == sex || a.Object.CivilStatus == civilStatus
            || a.Object.Date == date || a.Object.TypeofCertificate == typeofCertificate || a.Object.Purpose == purpose);
        await client.Child("Table => Certifications").Child(toDeleteCertification.Key).DeleteAsync();

【问题讨论】:

我不知道发生了什么。展示一个小而完整的例子。显示要添加的两个项目。然后,编写一个 test,在代码中删除第二个块。该测试代码是否有效?如果没有,那么它与点击哪个项目无关;您需要准确地隔离代码中的错误。这是删除代码中相当冗长的表述——需要找出究竟你做错了什么。为此,一次一点地构建它,使用硬编码的测试逻辑来查看它是否符合您的预期。 ... 很可能,这与“FireBase DeleteAsync”本身无关;只是在编写删除表达式时出现了一些简单的错误或误解。发生在我们所有人身上;学习如何隔离错误的确切原因是掌握代码编写的重要组成部分。 :) 非常感谢 ToolmakerSteve!我专注于删除部分,而不是'||',我将其更改为'&&'然后现在它是正常的并且按计划工作。再次,非常感谢! 【参考方案1】:

只是把这个答案放在这里,以确认 Beginnerton 解决了他们的问题。

删除表达式的逻辑错误;需要&amp;&amp; 而不是||

【讨论】:

以上是关于Xamarin Forms Firebase DeleteAsync 逻辑 - 为啥删除第一项而不是第二项?的主要内容,如果未能解决你的问题,请参考以下文章

从绑定 ListView Xamarin Forms 中检索 firebase 数据

Xamarin.Forms:UWP 应用的本地化

AppCenter 崩溃和 Firebase Crashlytics - 两者都不起作用 - Xamarin.Forms iOS

Xamarin Forms Firebase DeleteAsync 逻辑 - 为啥删除第一项而不是第二项?

Xamarin.Forms 可绑定属性

在 Xamarin.Forms 中使用 Android 绑定