Firebase Admin Java SDK ValueEventListener не работает

Я сделал клиентское приложение для Android с использованием Firebase, оно работает хорошо. Я хочу подать заявление о допуске, но у меня проблема. похоже, есть потоки с той же проблемой, но решение не сработало для меня.

Я слежу за документом: 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.

После расследования я обнаружил

Ошибка: конфликт с зависимостью '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 не выполняет никаких операций

Но решение не сработало.

есть у кого-нибудь идея? Спасибо


person qqchose    schedule 19.03.2017    source источник
comment
Инженеры Firebase не рекомендуют использовать Admin SDK в приложении для Android. См. Здесь: stackoverflow.com/a/42103063/4815718   -  person Bob Snyder    schedule 19.03.2017
comment
Этот ответ: вы не можете использовать Firebase Admin SDK в приложении для Android вместе с клиентскими библиотеками Firebase для Android. Но это не мой случай. Я не добавляю Admin sdk в клиентское приложение. Я создаю совершенно новое приложение только с допущением SDK   -  person qqchose    schedule 19.03.2017
comment
Хорошо, я тоже нашел это stackoverflow.com/questions/42163212/ Похоже, вы правы, и я не могу создать приложение администратора в Android. Хорошо, тогда я пытаюсь создать приложение для администратора eclipse. но я не нашел ни одного файла Build.Gradle в моем проекте eclipse, чтобы добавить компиляцию com.google.firebase: firebase-admin: 4.1.3. Где я должен добавить это в свой проект eclipse, если я вижу только сборку .gradle в моем проекте Android   -  person qqchose    schedule 19.03.2017


Ответы (1)


После некоторого исследования я нашел проблему. Как и комментарий "qbix", администратор Firebase не может работать в android.

Обычно я работаю на C ++, а java / gradle / android для меня совершенно в новинку. Я не знал, что "gradle" - это не просто файл в студии Android.

Тогда, если вы похожи на меня, и вы новичок в android / firebase / java и сделали ту же ошибку, что и я, есть способ заставить его работать.

Установленная Eclipse IDE для разработчиков Java EE https://eclipse.org/downloads/eclipse-packages/

добавить поддержку Gradle в eclipse http://www.vogella.com/tutorials/EclipseGradle/article.html

Создайте новый проект. (Используйте учебник от Eclipse)

Повторите руководство по firebase для firebase из учебника по firebase

и теперь я наконец достигаю точки останова в onDataChange, и данные кажутся правильными

person qqchose    schedule 19.03.2017