【发布时间】:2017-07-27 11:04:45
【问题描述】:
我正在使用 Firebase 开发我的第一个 Android 应用。这也是我整体上的第一个 android 应用程序,所以我没有经验,但已经对 Java 或 PHP 等编程语言有一些经验。我正在寻找专业建议,因为我的代码组织遇到了一些问题。我已经做了一些研究,但无法找到一个好的解决方案。
我的应用使用 Firebase 身份验证和 Firebase 实时数据库。
我将解释我的问题的所有相关部分。
主要活动...
- 检查用户是否已登录,如果未登录,则启动身份验证活动
- 包含一个Object
DatabaseHandler,负责数据库访问,这个对象需要一个UserInfo对象来实例化 - 包含一个
FirebaseAuth对象,附加一个AuthStateListener - 此
AuthStateListener检查用户是否已登录,如果已登录,它将使用当前用户重新实例化DatabaseHandler对象 - 应该能够显示从
DatabaseHandler检索到的一些数据
我的问题
我已经需要访问MainActivity 的onCreate() 方法中的DatabaseHandler 对象以显示一些数据,但是由于DatabaseHandler 在方法onAuthStateChanged() 中被实例化,因此要确保存在已经是用户登录了,这个不行,因为onCreate()是在onAuthStateChanged()之前调用的
我的想法
我不完全确定如何解决这个问题,但我的第一个想法是重组我的项目,使我的主要活动只检查要调用的活动,而不是自己显示数据。我仍处于项目的早期阶段,所以这应该不是什么大问题。 只是想知道这是否可行,或者是否有更好的解决方案。
让我知道你的想法
【问题讨论】:
-
据我了解,您没有有在
onCreate中获取和显示您的数据。您可以从 Activity 中的另一个自定义方法更新 UI。然后,您需要在此方法中“查找”UI 元素,或者将它们声明为 Activity 类的字段并在onCreate中“查找”它们。如果您愿意,我可以发布一个示例来说明我的意思。 -
如前所述,我对 android 概念并不熟悉。我正在使用 recycler 视图,主要是从教程中获得的代码,从本教程开始,我必须在
onCreate()方法中声明 recyclerview 的内容
标签: android firebase firebase-realtime-database firebase-authentication code-organization