-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;
}
はい、私はそのAPIを試してみましたが、それはverifyIDTokenで失敗しました。 – dickyj
動作しないコードがある場合は、[その問題を再現する最小コード](http://stackoverflow.com/help/mcve)を投稿してください。 –
コードを投稿しました。フォローアップに感謝します。 – dickyj