Я сделал клиентское приложение для 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 не выполняет никаких операций
Но решение не сработало.
есть у кого-нибудь идея? Спасибо