Ich habe ein Problem mit dem Abrufen der Benutzer-ID für eine Cloud-Endpunkt-Methode. Ich habe die Oauth2-Authentifizierung in meinem Android-Client verwendet und die Zugangsdaten an meinen Dienst weitergegeben. Das Folgende ist ähnlich wie meine Methode (vereinfacht, um es klarer zu machen).Funktion User.getUserId() in Cloud-Endpunkt-API gibt Null für ein Benutzerobjekt, das nicht Null ist
Ich bemerke, dass issue 8848 für Python zu diesem Problem sehr ähnlich zu sein scheint.
Ist das gleiche Problem ein Problem in Java API? Das Verfahren
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());
}
wird null für föderierte Identität zeigen und userId obwohl Anmeldeinformationen in Android-Client haben oauth2 Authentifizierung durchgeführt haben. Die E-Mail-Adresse wird im Protokoll korrekt angezeigt. Dies ist alles auf einer bereitgestellten Anwendung BTW.
Hat jemand andere Vorschläge, was falsch ist? Bekannte Problemumgehungen für das Problem? Ich habe die in https://developers.google.com/appengine/docs/java/endpoints/consume_android#making-authenticated-calls vorgeschlagene Methode verwendet, um meinen Android-Client einzurichten.
Danke. Ich werde die Problemumgehung versuchen, denke ich. Zumindest weiß ich es und kann jetzt auf einen Bugfix warten. – user2072160
Es scheint, dass dies immer noch nicht behoben ist. Ich habe ein Cloud-Endpunkte-Backend, das bei jedem Aufruf von getUserId null zurückgibt. Muss die Benutzer-ID verwendet werden? E-Mail ist auch einzigartig und ich denke nicht, dass es für einen Benutzer möglich ist, seine E-Mail-Adresse zu ändern. – sthomps
Irgendwelche Zuversicht, dass das funktioniert? Versuchen Sie, diese schlechte Arbeit zu implementieren, oder gehen Sie mit E-Mail als Schlüssel. – Patrick