2017-03-19 62 views
0

我做了一個使用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

但解決沒有工作。

有任何想法嗎?謝謝

+1

火力地堡的工程師建議不要在使用管理SDK Android應用。請參閱此處:http://stackoverflow.com/a/42103063/4815718 –

+0

此答案是 「您不能在Firebase Android客戶端庫的Android應用程序中使用Firebase Admin SDK。」 但這不是我的情況。我沒有在客戶端應用程序中添加Admin sdk。我正在創建一個全新的應用程序,只接受sdk – qqchose

+0

好的,我也發現了這個 http://stackoverflow.com/questions/42163212/firebase-admin-sdk-causes-gradle-dependency-error?noredirect=1&lq = 1 看起來你是對的,我不能在android中做一個管理員應用程序。好吧,那麼我正在嘗試eclipse來做一個管理應用程序。但我沒有找到任何Build.Gradle文件在我的eclipse項目中添加 compile'c​​om.google.firebase:firebase-admin:4.1.3' 我應該在eclipse項目中添加這個項目,如果我只能看到我的android項目中的build.gradle – qqchose

回答

0

經過一番研究,我發現了這個問題。 與「qbix」評論一樣,Firebase管理員無法在Android中完成。

我通常使用C++和java/gradle/android對我來說是全新的。我不知道「gradle」不只是Android工作室中的一個文件。

然後,如果你是像我一樣,你是android/firebase/java中的新手,並且做了與我一樣的錯誤,那麼有一個方法可以使它工作。

安裝Eclipse IDE中對Java EE開發 https://eclipse.org/downloads/eclipse-packages/

添加搖籃支持偏食 http://www.vogella.com/tutorials/EclipseGradle/article.html

創建一個新項目。 (從Eclipse的使用教程)

從火力教程

重做火力點的火力教程,現在我終於在onDataChange達到我的斷點,數據似乎是正確