我做了一個使用Firebase的Android客戶端應用程序,它運行良好。我想做一個承認申請,但我有一個問題。它看起來像是存在同樣問題的線程,但該解決方案對我無效。Firebase Admin Java SDK ValueEventListener不工作
我正在關注的DOC: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.
我可以生活在那,然後我繼續。
我創建了我的管理員密鑰並下載了該文件。在doc,他們要求我們做這樣的代碼:
FileInputStream serviceAccount = new FileInputStream("path/to/serviceAccountKey.json");
但我沒有發現放在哪裏文件,使其工作(很明顯,正確的文件夾名和文件名)。經過一番調查,我發現我可以放置在文件中
res/raw/serviceAccountKey.json
像這樣
InputStream serviceAccount = getResources().openRawResource(R.raw.serviceAccountKey);
完美創造一個FileInputStream。似乎工作,然後代碼看起來像這樣
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
但解決沒有工作。
有任何想法嗎?謝謝
火力地堡的工程師建議不要在使用管理SDK Android應用。請參閱此處:http://stackoverflow.com/a/42103063/4815718 –
此答案是 「您不能在Firebase Android客戶端庫的Android應用程序中使用Firebase Admin SDK。」 但這不是我的情況。我沒有在客戶端應用程序中添加Admin sdk。我正在創建一個全新的應用程序,只接受sdk – qqchose
好的,我也發現了這個 http://stackoverflow.com/questions/42163212/firebase-admin-sdk-causes-gradle-dependency-error?noredirect=1&lq = 1 看起來你是對的,我不能在android中做一個管理員應用程序。好吧,那麼我正在嘗試eclipse來做一個管理應用程序。但我沒有找到任何Build.Gradle文件在我的eclipse項目中添加 compile'com.google.firebase:firebase-admin:4.1.3' 我應該在eclipse項目中添加這個項目,如果我只能看到我的android項目中的build.gradle – qqchose