Android Firebase代码组织(概念)

时间:2017-03-07 09:48:52

标签: android firebase firebase-realtime-database firebase-authentication code-organization

我正在使用Firebase开发我的第一个Android应用。它也是我的第一个Android应用程序整体,所以我没有经验,但已经有了编程语言,如Java或PHP的一些经验。我正在寻找专业建议,因为我遇到了代码组织的一些问题。我已经做了一些研究,但未能找到一个好的解决方案。

我的应用使用Firebase身份验证和Firebase实时数据库。

我将解释我的问题的所有相关部分。

主要活动......

  • 检查用户是否已登录,如果没有,则启动身份验证活动
  • 包含一个对象DatabaseHandler,负责数据库访问,此对象需要实例化UserInfo对象
  • 包含附加FirebaseAuth
  • AuthStateListener个对象
  • AuthStateListener检查用户是否已登录,如果是,则会使用当前用户重新实例化DatabaseHandler对象
  • 应该能够显示从DatabaseHandler
  • 检索到的一些数据

我的问题

我已经需要访问DatabaseHandler的{​​{1}}方法中的onCreate()对象来显示一些数据,但是因为MainActivity在方法中被实例化了DatabaseHandler,为了确保用户已经登录,这不起作用,因为onAuthStateChanged()之前调用了onCreate()

我的想法

我不完全确定如何解决这个问题,但我的第一个想法是重构我的项目,我的主要活动只检查要调用的活动,而不是自己显示数据。我还处于项目的早期阶段,所以这应该不是什么大问题。 只是想知道这是否有效或是否有更好的解决方案。

让我知道你的想法

1 个答案:

答案 0 :(得分:0)

这是一个代码假定您要显示图书清单的活动示例:

onCreate

通过此操作,您可以执行以下操作:

  • 创建并实例化onCreate
  • 中的所有对象
  • 检查populateList中的用户并采取相应行动
  • 获取数据并从onCreate显示,这样就可以重新填充列表,而无需浏览所有clear内容(请记住<p ng-repeat="x in myArray.sprint">{{ x.p_id }}, {{ x['sprint_requirement_[' + ($index + 1) + ']'] }}</p> 列表/适配器