我在React Native-Expo app中将Firebase用作身份验证和数据库平台。我尚未决定是否要使用实时数据库或Firestore数据库。
我需要对从用户收集的每日数据进行统计分析,这些数据存储在数据库中。即用户输入他们每天的蛋白质摄入量,据此我可以计算出他们的每周平均值,预期的每月平均值,并提供蛋白质摄入量过低等食物类型的建议。
要达到我特定情况下想要的结果,最好的方法是什么?
关于如何实现此目标,我真的不熟悉,并涉足未知领域。我已经了解到Firebase Analytics会生成有关应用程序使用情况,无崩溃用户的数量等不同的基本分析。但是它可以对自定义事件执行分析吗?我可以为Firebase分析创建自定义事件以跟踪数据库中的某个节点,并从中输出分析吗?然后,当然,如果可以,它是否可以与React Native-Expo一起使用,还是我需要与Expo分离?此外,我已经阅读过Firebase Analytics可以与Google BigQuery结合使用。这可以代替我的情况吗?
还有其他方法可以对我存储在Firebase数据库中的数据进行此类数据分析吗?例如,导出数据并使用Python和SciKit Learn?
无论您有什么意见或建议,如果能与您分享,我将不胜感激!
答案 0 :(得分:1)
您并不孤单 - 许多在 GCP 上构建网络应用的人都有这个问题,而且没有唯一的答案。
我对 Firebase Analytics 不太熟悉,但可以回答 Firestore 和您的自定义分析(例如每周平均蛋白质消耗量)的问题
首先要指出的是,Firestore 与其他 NoSQL 数据库不同,它只是存储。您无法像使用 MongoDB 那样实时执行聚合,因此必须在其他地方进行计算。
在这种情况下,GCP 推荐的最佳做法确实是将 Firestore 数据定期导出到 BQ (BigQuery),同时您可以在那里运行分析计算。您还可以在用户输入一些数据时,将其发送到 Pub/Sub 并使用 GCP Dataflow 的 streaming templates 之一将数据流式传输到 BQ,并以近乎实时的方式获得所有数据。
然而,这里有一个问题:虽然这个解决方案为您提供实时性,并且具有很强的可扩展性,但它很快就会变得昂贵,而且如果您更习惯于 Python 而不是 SQL 来运行分析,它可能是一个陡峭的学习曲线。这是我用于较小网络应用程序的替代方案,它适用于 <10 万个用户,并且在 GCP 当前定价上每月花费 <20 美元: