【问题标题】:Swift Firebase displaying from the database to a label.text in a tableviewSwift Firebase 从数据库显示到 tableview 中的 label.text
【发布时间】:2018-08-26 20:21:34
【问题描述】:

我将尽力解释这个问题,因为它有点令人困惑。我正在为其用户创建一个餐厅评级应用程序来对餐厅进行评级(在 1 到 5 星评级范围内)。我将保留用户对 Firebase 的投票,然后计算该特定餐厅的平均评分并将其显示在我的应用程序中。

总而言之,在我的主 tableview 中会有餐厅名称和旁边的评级,由 UIImage(星形图标)和标签(显示他们的评级)保存。我已经为每家餐厅创建了一个 cmets 部分,方法是跟踪用户单击的单元格(餐厅)的参数,并基于此,在 firebase 数据库中创建或更新该餐厅的节点,并可以显示特定于该的 cmets应用程序中的餐厅没有问题。当点击餐厅时,用户会被引导至该餐厅的 cmets 部分。

现在我还在考虑将每家餐厅的评分存储在相同的节点上。正如我之前所说,我想在到达 cmets 部分之前将总体评分存储在餐厅旁边的标签中。我的问题是,在我将评分存储在我的数据库中之后,我将如何真正设法向标签显示正确的评分?我的意思是我通过创建一个参数来跟踪单击了哪个单元格来跟踪要在我的 cmets 部分中显示的 cmets,但是现在,我希望我的应用程序在用户单击餐厅之前直接显示餐厅评级。

这可能吗?如果是,我该如何管理?我希望我能清楚地解释事情。我会很感激任何帮助。非常感谢您阅读我的长文!

【问题讨论】:

    标签: swift firebase firebase-realtime-database


    【解决方案1】:

    这个问题有点超出了这里应该如何提问的范围,但我会尽我所能在这里给你一些建议!

    您正在寻找的东西绝对是可能的,老实说,这是一个开始 iOS 项目的好地方。

    1:Firebase 数据库是一个很棒的工具,但是如果您要开始一个新项目,那么您真的应该使用 Firebase Firestore。 Firebase 数据库正在被弃用(即他们将在某个时候停止对它的支持),而 Firestore 通常更容易掌握。

    2:使用 Firestore 执行您尝试执行的操作的一种常见方法是让一个文档包含有关每家餐厅的所有数据,然后让每家餐厅包含所有 cmets 的集合。

    3:Firebase 还有一个名为 Functions 的功能,您绝对应该检查一下。每当 Firestore 中“发生”某些事情时,函数就可以运行。因此,实际上很容易创建一个函数,每当创建餐厅的新评论/评论时,它都会收集所有评论,创建一个平均值,然后使用该平均分数更新您的餐厅。

    下面是一个可行的数据结构的粗略概念:

     [restaurants]
      -> {restaurantId}
        - about
        - name
        - blahBlahBlah
        - averageRating
        - [reviews]
          -> {reviewId}
          - text
          - rating
    

    编码愉快!

    【讨论】:

      【解决方案2】:

      应该相当简单:

      • 首先为您的评级系统建模;其次保留那些实例 评分;
      • 在您的餐厅类中创建一个方法,该方法根据您的评分系统的结果返回当前评分。
      • ** 提示:(此方法返回的是您在标签上显示的内容。)***

      最后,在您的 tableview/collectionView 标签中,您应该只调用该方法。如果你做的一切正确。无论您将来对评分系统进行任何更改,tableview 都会收集并显示这些数据。

      更明确地说:

      • 将您的餐厅加载到 firebase。
      • 当用户评价一家餐厅时,在餐厅类中有一个方法来处理此类请求。例如currentRestaurant.updateRating()
      • 将更改加载到 firebase 数据库。
      • 在 tableview/CollectionView 中调用类似于 currentRestaurant.retreiveRating() 的东西

      此外,您的 dataManager 应该处理任何上传/下载,而不是实际的 Restaurant 对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-17
        • 2017-04-18
        • 1970-01-01
        • 2017-11-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多