我正在使用Firebase开发我的第一个Android应用程序。这也是我的第一个android应用程序,所以我没有经验,但已经通过Java或PHP等编程语言获得了一些经验。我正在寻找专业建议,因为我遇到了我的代码组织的一些问题。我已经做了一些研究,但无法为此找到一个好的解决方案。Android Firebase代码组织(概念)
我的应用使用Firebase身份验证和Firebase实时数据库。
我将解释我的问题的所有相关部分。
的主要活动......如果一个用户登录,如果没有,启动认证活动
DatabaseHandler
,这是负责数据库
- 检查访问时,此对象需要实例化一个UserInfo对象
- 包含
FirebaseAuth
对象附加了AuthStateListener
- 这
AuthStateListener
检查如果用户已登录,如果是的话,将与当前用户 - 应能显示从
DatabaseHandler
检索的某些数据重新实例化DatabaseHandler
对象我的问题
我已经需要访问的onCreate()
方法中的DatabaseHandler
对象2882显示一些数据,但自DatabaseHandler
的方法onAuthStateChanged()
被实例化,以确保已经有登录的用户,这是行不通的,因为onCreate()
之前onAuthStateChanged()
我的想法叫
我不完全确定如何解决这个问题,但我的第一个想法是重组我的项目的方式,我的主要活动只检查要调用的活动,而不是自己显示数据。我仍然处于项目的早期阶段,所以这应该不是什么大问题。 只是想知道这是否会工作,或者如果有更好的解决方案。
让我知道你在想什么
据我了解,你不**有**在'onCreate'中获取并显示你的数据。您可以从您的活动中的另一个自定义方法更新UI。你需要在这个方法中'查找'UI元素,或者将它们声明为Activity类的字段,并在'onCreate'中'查找'它们。如果你愿意,我可以发表一个我的意思的例子。 – Barthy
正如我所说的,我并不熟悉android概念。我使用的是recylcer视图,大部分都是从教程中获得的代码,并且在本教程中,我必须在'onCreate()'方法中声明recylcerview的内容 –