【问题标题】:Firebase Admin Java SDK ValueEventListener not workingFirebase Admin Java SDK ValueEventListener 不工作
【发布时间】: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


【解决方案1】:

经过一番研究,我发现了问题所在。 像“qbix”评论一样,Firebase admin 无法在 android 中完成。

我通常使用 c++ 工作,而 java/gradle/android 对我来说是全新的。我不知道“gradle”不仅仅是 Android Studio 中的一个文件。

那么,如果你和我一样,并且你是 android/firebase/java 的新手,并且犯了与我相同的错误,那么有一个方法可以让它发挥作用。

为 Java EE 开发人员安装了 Eclipse IDE https://eclipse.org/downloads/eclipse-packages/

为 Eclipse 添加 Gradle 支持 http://www.vogella.com/tutorials/EclipseGradle/article.html

创建一个新项目。 (使用 Eclipse 的教程)

从firebase教程重做firebase的firebase教程

现在我终于在 onDataChange 中到达断点,数据似乎正确

【讨论】:

    猜你喜欢
    • 2017-09-27
    • 2018-05-02
    • 2018-03-20
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 2018-08-16
    相关资源
    最近更新 更多