2017-02-14 3 views
2

をしていません。Firebase管理のJava SDKは、私はだから私は、次の方法でそれを初期化しています<a href="https://firebase.google.com/docs/database/admin/start" rel="nofollow noreferrer">this</a>ガイド</p> <p>を使用してfirebase管理SDKのセットアップをした任意の操作

InputStream refreshToken = new ClassPathResource(CONFIG_FILE).getInputStream(); 

FirebaseOptions options = new FirebaseOptions.Builder() 
      .setCredential(FirebaseCredentials.fromRefreshToken(refreshToken)) 
      .setDatabaseUrl("https://<project-id>.firebaseio.com/") 
      .build(); 

FirebaseApp.initializeApp(options); 

この時点でエラーは発生しませんでしたが、すべて正常です。しかし、私は何もできません。メソッドを呼び出すことは何もしません。例:

FirebaseDatabase.getInstance() 
      .getReference() 
      .addListenerForSingleValueEvent(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 
         //this callback is never called 
       } 

       @Override 
       public void onCancelled(DatabaseError databaseError) { 

       } 
      }); 

または

class Pojo { 

    public Pojo(String name, String surname) { 
     this.name = name; 
     this.surname = surname; 
    } 

    String name; 
    String surname; 
    //omitted getters and setters 
} 


FirebaseDatabase.getInstance.getReference() 
       .push() 
       .setValue(new Pojo("Test", "Test")); 
//this value is never set 

これは単に、SKDは、任意のコマンドを無視することのように見えます。何か案は?

背景:これは、ローカルマシン上でWebアプリケーション(春)として実行しています。あなたはAdd Firebase to your appに記載されているように、サービスアカウントキーJSONファイルとSDKを認証している場合

+0

2つのコメント/質問:(1)リフレッシュトークンを取得していますが、プロジェクトに適切な権限があることを確認してください(リフレッシュトークンを使用するのは高度な使用例です)。(2)Admin SDKは*サーバー*アプリケーションであり、クライアントアプリケーションでの使用は安全ではありません。 – jwngr

+0

1. Googleのdocsのチュートリアルに続いて、資格jsonファイルを使用しています。 2.これはクライアントではなくサーバーアプリケーションです – Manza

答えて

2

は、あなたがfromCertificate()メソッドを使用する必要があり、ないfromRefreshToken()方法:

FileInputStream serviceAccount = new FileInputStream("path/to/serviceAccountKey.json"); 

FirebaseOptions options = new FirebaseOptions.Builder() 
    .setCredential(FirebaseCredentials.fromCertificate(serviceAccount)) 
    .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/") 
    .build(); 

FirebaseApp.initializeApp(options); 

リフレッシュトークンによる認証は少しあります高度なユースケースであり、おそらくあなたが使いたいものではありません。

+0

この行が変更されていれば、完全に動作します。ありがとうございます。 – Manza

関連する問題

 関連する問題