【发布时间】:2017-03-19 01:46:22
【问题描述】:
我使用 Firebase 做了一个 android 客户端应用程序,它运行良好。我想做一个录取申请,但我遇到了一个问题。看起来有相同问题的线程,但解决方案对我不起作用。
我正在关注文档:https://firebase.google.com/docs/admin/setup
然后我创建了一个全新的项目(这个项目没有客户端库,也不会有)。 我加了
compile 'com.google.firebase:firebase-admin:4.1.3'
首先,我收到了这个错误
Error:Conflict with dependency 'com.google.code.findbugs:jsr305' in project ':app'. Resolved versions for app (1.3.9) and test app (2.0.1) differ. See http://g.co/androidstudio/app-test-app-conflict for details.
经过调查发现
Error:Conflict with dependency 'com.google.code.findbugs:jsr305'。
解决办法是添加
configurations.all {
resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9'
}
它正在工作,但我仍然收到一些警告。
Warning:WARNING: Dependency org.apache.httpcomponents:httpclient:4.0.1 is ignored for debug as it may be conflicting with the internal version provided by Android.
Warning:WARNING: Dependency org.apache.httpcomponents:httpclient:4.0.1 is ignored for debug as it may be conflicting with the internal version provided by Android.
Warning:WARNING: Dependency org.json:json:20160212 is ignored for debug as it may be conflicting with the internal version provided by Android.
Warning:WARNING: Dependency org.apache.httpcomponents:httpclient:4.0.1 is ignored for release as it may be conflicting with the internal version provided by Android.
Warning:WARNING: Dependency org.json:json:20160212 is ignored for release as it may be conflicting with the internal version provided by Android.
Warning:WARNING: Dependency org.apache.httpcomponents:httpclient:4.0.1 is ignored for release as it may be conflicting with the internal version provided by Android.
Warning:WARNING: Dependency org.json:json:20160212 is ignored for release as it may be conflicting with the internal version provided by Android.
我可以忍受,然后我继续。
我创建了我的管理员密钥并下载了文件。在文档中,他们要求我们执行以下代码:
FileInputStream serviceAccount = new FileInputStream("path/to/serviceAccountKey.json");
但我没有找到将文件放在哪里才能使其正常工作(显然使用正确的文件夹名和文件名)。经过一番调查,我发现我可以将文件放入
res/raw/serviceAccountKey.json
并像这样创建 FileInputStream
InputStream serviceAccount = getResources().openRawResource(R.raw.serviceAccountKey);
完美。好像可以,然后代码是这样的
InputStream serviceAccount = getResources().openRawResource(R.raw.serviceAccountKey);
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredential(FirebaseCredentials.fromCertificate(serviceAccount))
.setDatabaseUrl("https://" + m_databaseName + ".firebaseio.com/")
.build();
FirebaseApp.initializeApp(options);
目前,我没有任何错误。然后我做下一步
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
System.out.println("The read succeed");
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getCode());
}
});
但是,永远不会调用 onDataChange 和 onCancelled。我没有看到任何错误。
经过调查,我发现其他人也有同样的问题
Firebase Admin Java SDK not doing any operation
但解决方案不起作用。
有任何想法吗?谢谢
【问题讨论】:
-
Firebase 工程师建议不要在 Android 应用中使用 Admin SDK。见这里:stackoverflow.com/a/42103063/4815718
-
这个答案是“您不能在 Android 应用程序中使用 Firebase Admin SDK 以及 Firebase Android 客户端库。”但这不是我的情况。我没有在客户端应用程序中添加 Admin sdk。我正在创建一个只有承认 sdk 的全新应用程序
-
好的,我也发现了这个 stackoverflow.com/questions/42163212/… 看起来你是对的,我不能在 android 中做一个管理应用程序。好的,然后我正在尝试使用 eclipse 来做一个管理应用程序。但我在我的 Eclipse 项目中找不到任何 Build.Gradle 文件来添加编译 'com.google.firebase:firebase-admin:4.1.3' 如果我只看到构建,我应该在我的 Eclipse 项目中添加这个.gradle 在我的 android 项目中
标签: android firebase firebase-admin