Ho un problema con l'ottenimento del userid per un metodo endpoint cloud. Ho usato l'autenticazione oauth2 nel mio client Android e ho passato le credenziali al mio servizio. Il sotto è simile a come appare il mio metodo (semplificato per renderlo più chiaro).Funzione User.getUserId() nell'endpoint Cloud api restituisce null per un oggetto utente che non è nullo
Ho notato che issue 8848 per python sembra essere molto simile a questo problema.
Lo stesso problema è presente anche in java api? Il metodo
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());
}
mostrerà nullo per l'identità federata e userId anche se le credenziali di client Android hanno avuto l'autenticazione OAuth2 eseguita. L'indirizzo email viene visualizzato correttamente nel registro. Questo è tutto su un'applicazione distribuita btw.
Qualcuno ha altri suggerimenti su cosa è sbagliato? Eventuali soluzioni alternative per il problema? Ho seguito il metodo suggerito in https://developers.google.com/appengine/docs/java/endpoints/consume_android#making-authenticated-calls per configurare il mio client Android.
Grazie. Proverò la soluzione alternativa, immagino. Almeno so e posso aspettare una correzione ora. – user2072160
Sembra che questo non è ancora stato risolto. Ho un backend endpoint cloud che restituisce null ogni volta che chiamo getUserId. Tuttavia, è necessario utilizzare l'id utente? L'e-mail è anche unica e non credo sia possibile per un utente cambiare il suo indirizzo e-mail. – sthomps
Qualche confidenza con il funzionamento? Cercando di decidere di implementare questo pessimo lavoro, o utilizzare l'e-mail come chiave. – Patrick