クラウドエンドポイントメソッドのuseridの取得に問題があります。私はアンドロイドクライアントでoauth2認証を使用し、資格情報を私のサービスに渡しました。以下は、私のメソッドがどのように見えるか(簡略化するために単純化されたもの)と似ています。機能クラウドエンドポイントAPIのUser.getUserId()は、nullではないユーザーオブジェクトに対してnullを返します。
私は、pythonのissue 8848はこの問題と非常によく似ているようです。
java apiでも同じ問題が発生していますか?方法
public SuccessCode doSomething(WireFormat wire, User user){
log.info("User id: "+user.getUserId());
log.info("Federated identity: "+user.getFederatedIdentity());
log.info("Email address: "+user.getEmail());
}
、フェデレーテッド・アイデンティティとAndroidクライアントでの資格情報はのOAuth2認証が行わ持っていたにもかかわらず、useridにはヌルが表示されます。電子メールアドレスがログに正しく表示されます。これは、すべて展開されたアプリケーションbtw上にあります。
何が間違っているか他の提案はありますか?問題の既知の回避策はありますか?私はhttps://developers.google.com/appengine/docs/java/endpoints/consume_android#making-authenticated-callsで提案された方法に従って、アンドロイドクライアントを設定しました。
ありがとうございました。私は私が推測する回避策を試してみます。少なくとも私は知っているし、バグフィックスを待つことができる。 – user2072160
これはまだ修正されていないようです。私はgetUserIdを呼び出すたびにnullを返すクラウドエンドポイントバックエンドを持っています。しかし、ユーザーIDを使用する必要はありますか?電子メールもユニークで、ユーザーが電子メールアドレスを変更する可能性はないと思う。 – sthomps
これを取得することに自信がありますか?この悪い方法を実装するか、電子メールをキーとして使用するかを決定しようとしています。 – Patrick