2016-10-01 11 views
-1

私は現在、モバイルアプリケーションでFirebase認証を使用しています。バックエンドはSpringブートアプリケーションです。バックエンドのREST APIは、Firebase認証から生成されたトークンを使用して、ユーザーのFirebase UID(verifyIDTokenメソッド)を取得して、さらに機能を実行します。 現在、Firebase Java API(サーバーベース)ではユーザーのトークンを生成する方法がないため、ユーザー認証に依存するサーバー上でJUnitテストを実行する簡単な方法はありません。誰でもそうする手掛かりがありますか?Firebase JavaでJUnitテストを実行するには?

これが動作しないサンプルコードです:

@RequestMapping(value = "/api/subscribeChannel/{channelid}", method = RequestMethod.GET, produces = "application/json") 
public DeferredResult<Object> subscribeChannel(@PathVariable Long channelid,@RequestHeader(value=FIREBASETOKEN, required = true) String idToken) { 


    DeferredResult<Object> result = new DeferredResult<Object>(DEFERREDTIMEOUT);  

    // test it out with a locally generated token 
    idToken = FirebaseAuth.getInstance().createCustomToken("valid Uid"); 

    Task<FirebaseToken> task = FirebaseAuth.getInstance().verifyIdToken(idToken) 
      .addOnSuccessListener(new OnSuccessListener<FirebaseToken>() { 
       @Override 
       public void onSuccess(FirebaseToken decodedToken) { 
        String uid = decodedToken.getUid();      
        logger.info("Subscribe channel on success"); 

         // do something 

         ret.setStatus("success"); 
         ret.setMessage("channel id " + channelid + " subscribed"); 

         result.setResult(ret);       
        } else { 
         result.setErrorResult(retStatus.getMessage()); 
        } 

       } 
     }) .addOnFailureListener(new OnFailureListener() { 

      @Override 
      public void onFailure(Exception arg0) { 
       Exception te = new TokenNotFoundException(idToken); 
       logger.error("Token Not Found for " + idToken); 
       result.setErrorResult(te); 

      } 

     });  

    return result;  

} 

答えて

0

のJava APIのカスタムトークンを生成するためには、Create custom tokens using the Firebase SDKの下に記載されています。そこから

String uid = "some-uid"; 
String customToken = FirebaseAuth.getInstance().createCustomToken(uid); 
+0

はい、私はそのAPIを試してみましたが、それはverifyIDTokenで失敗しました。 – dickyj

+0

動作しないコードがある場合は、[その問題を再現する最小コード](http://stackoverflow.com/help/mcve)を投稿してください。 –

+0

コードを投稿しました。フォローアップに感謝します。 – dickyj

関連する問題