我正在尝试使用Robolectric进行测试,并且它与Firebase集成。我有一个项目MyProject - 我将用于在数据库的实际实例中运行测试。
问题是,在测试之前运行清理时,我有错误:
while (c != ' ' && c != '\n' && c != '\t')
测试文件: https://gist.github.com/augustoerico/e88d3e5b59ae5d023d83c114b8ffa708 (我试图在这里复制粘贴源。失败了......)
有关如何使其发挥作用的任何见解?
谢谢!
答案 0 :(得分:2)
前几天我也遇到了同样的问题,我以错误的方式解决了这个问题。您收到该错误是因为您尝试获取Firebase
的实例而未初始化它。在尝试获取Firebase实例之前,请先添加以下代码:
FirebaseApp.initializeApp(this);
此外,正如Franks所说,请确保在整个文件的build.gradle
文件as the last line
中添加了以下代码。
apply plugin: 'com.google.gms.google-services'
答案 1 :(得分:2)
我遇到了同样的问题,并通过在单元测试的前一步中初始化Firebase来解决了这个问题:
FirebaseApp.initializeApp(InstrumentationRegistry.getInstrumentation().targetContext)
答案 2 :(得分:1)
好的,我已经弄明白了。这实际上是一个概念问题。问题是我尝试使用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/
为了将来参考,我通过调整规则来提供公共完全访问权限,因此编写测试设置和清理更容易。
答案 3 :(得分:0)
我也遇到了上述问题。通过nuget完成所有插件下载和检查。但最后,我发现崩溃是由于,应用程序包名称与Google Dev中分配的名称不匹配。 应用程序包名称必须与Google Dev中指定的名称相匹配。控制台强>
答案 4 :(得分:0)
添加此行后,您会收到错误消息
FirebaseApp.initializeApp(this);
然后您还必须这样做
应用插件:“ com.google.gms.google-services”
classpath'com.google.gms:google-services:3.2.1'
还要检查是否没有依赖关系缺失,并确保添加google-services.json