Mam problem z uzyskaniem identyfikatora użytkownika dla metody punktu końcowego w chmurze. Użyłem autoryzacji Oauth2 w moim Androidzie i przekazałem dane uwierzytelniające do mojej usługi. Poniższe jest podobne do mojej metody (uproszczone, aby było bardziej zrozumiałe).Funkcja User.getUserId() w interfejsie API punktu końcowego w chmurze zwraca wartość null dla obiektu użytkownika, który nie ma wartości null
Zauważam, że issue 8848 dla Pythona wydaje się być bardzo podobny do tego problemu.
Czy ten sam problem występuje również w java api? Metoda
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());
}
pokaże null dla stowarzyszonym tożsamości i userid mimo poświadczenia Android klienta miały uwierzytelniania OAuth2 wykonywane. Adres e-mail wyświetla się poprawnie w dzienniku. Wszystko to dotyczy wdrożonej aplikacji.
Ktoś ma jakieś inne sugestie co do tego, co jest nie tak? Jakieś znane rozwiązania problemu? Zastosowałem metodę sugerowaną w https://developers.google.com/appengine/docs/java/endpoints/consume_android#making-authenticated-calls, aby skonfigurować klienta Android.
Dzięki. Spróbuję obejść, jak sądzę. Przynajmniej wiem i mogę teraz czekać na poprawkę. – user2072160
Wygląda na to, że nie zostało to naprawione. Mam serwer zaplecza chmury, która zwraca wartość null, gdy wywołuję getUserId. Chociaż czy jest potrzeba użycia identyfikatora użytkownika? E-mail jest również wyjątkowy i nie sądzę, aby użytkownik mógł zmienić swój adres e-mail. – sthomps
Czy masz pewność, że to działa? Próbuję zdecydować się na wdrożenie tej złej pracy lub użyć poczty e-mail jako klucza. – Patrick