【问题标题】:OrderBy() method of Firebase.Xamarin doesn't sort the dataFirebase.Xamarin 的 OrderBy() 方法不对数据进行排序
【发布时间】:2017-09-14 22:32:10
【问题描述】:

这是一个关于 Firebase.Xamarin NuGet 包的问题。我使用语句await Client.Child(FirebaseKeys.Users).OrderBy("FirstName").OnceAsync<object>(); 按名字对用户进行排序,但我没有按排序顺序排列用户。在源代码中有一条评论指出“这主要用于跟踪过滤查询,并且由于 firebase 实现,数据实际上可能没有被排序。”我不确定是否可以对数据进行排序。

【问题讨论】:

  • 如果您无法让 Firebase 对结果进行排序,您始终可以将查询具体化为 List<User> 或适当的结构,然后在内存中对它们进行排序。
  • 当您从object 获取数据时,您可能正在撤消订单。您需要遍历 DataSnapshot.Children 或 [listen for Child events[(firebase.google.com/docs/database/unity/…) 以维持顺序。

标签: c# firebase xamarin firebase-realtime-database xamarin.forms


【解决方案1】:

如果您查看 Firebase.Xamarin Github 代码,它在方法文档中明确说明如下:

        /// <summary>
        /// Order data by given <see cref="propertyName"/>. Note that this is used mainly for following filtering queries and due to firebase implementation
        /// the data may actually not be ordered.
        /// </summary>
        /// <param name="child"> The child. </param>
        /// <param name="propertyName"> The property name. </param>
        /// <returns> The <see cref="OrderQuery"/>. </returns>
        public static OrderQuery OrderBy(this ChildQuery child, string propertyName)
        {
            return child.OrderBy(() => propertyName);
        }

实际上,数据可能不会按要求排序。

【讨论】:

  • 当然,你是对的。 SO的移动视图有点困难。我没有正确阅读它。我将在不编辑或删除的情况下留下我的答案,以便其他人可以在我将实际源代码与文档一起发布时阅读。谢谢指出!
猜你喜欢
  • 2019-11-25
  • 1970-01-01
  • 1970-01-01
  • 2016-01-17
  • 1970-01-01
  • 1970-01-01
  • 2016-02-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多