我正在尝试使用 Robolectric 运行测试,它与 Firebase 集成。我有一个项目 MyProject - Test,我将使用它在数据库的真实实例中运行测试。
问题是,在测试前运行清理时,出现错误:
java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process null. Make sure to call FirebaseApp.initializeApp(Context) first.
at com.google.firebase.FirebaseApp.getInstance(Unknown Source)
at com.google.firebase.database.FirebaseDatabase.getInstance(Unknown Source)
at com.cgbros.silkhub.activity.listener.LoginActivityUnitTest.cleanUp(LoginActivityUnitTest.kt:26) <28 internal calls>
测试文件: https://gist.github.com/augustoerico/e88d3e5b59ae5d023d83c114b8ffa708 (我试图在这里复制粘贴源代码。惨败......)
关于如何使这项工作发挥作用的任何见解?
谢谢!
最佳答案
好的,我已经弄明白了。这实际上是一个概念问题。问题是我正在尝试使用 Firebase Android SDK 在 Android 上下文之外运行测试。我的意思是,我的测试不是 Android 应用程序,我正在尝试使用 Android SDK。所有 FirebaseApp.initializeApp()
都需要一个 Context
作为参数。
因此,我要做的是找到一种与我的 FirebaseDatabase 交互的方法。我想我可以使用 firebase-admin
,或者使用这个:https://github.com/bane73/firebase4j
感谢您花时间帮助我 (:
** 更新**
我选择使用 Firebase REST API https://firebase.google.com/docs/reference/rest/database/
为了将来引用,我通过调整规则向公众提供完全访问权限,以便更容易编写测试设置和清理。
关于android - 测试 - 在此过程中未初始化 FirebaseApp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47253944/