Tôi gặp sự cố khi nhận userid cho phương thức điểm cuối đám mây. Tôi đã sử dụng xác thực oauth2 trong ứng dụng khách Android của mình và đã chuyển thông tin đăng nhập vào dịch vụ của mình. Dưới đây là tương tự như những gì phương pháp của tôi trông giống như (đơn giản hóa để làm cho nó rõ ràng hơn).Chức năng User.getUserId() trong Cloud endpoint api trả về null cho đối tượng người dùng không phải là rỗng
Tôi lưu ý rằng issue 8848 cho python có vẻ rất giống với vấn đề này.
Có phải vấn đề tương tự cũng gặp phải vấn đề trong java api không? Phương pháp
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());
}
sẽ hiển thị null cho Federated Identity và userId mặc dù thông tin trong ứng dụng android đã xác thực OAuth2 thực hiện. Địa chỉ email hiển thị chính xác trong nhật ký. Đây là tất cả trên một ứng dụng triển khai btw.
Bất kỳ ai có bất kỳ đề xuất nào khác về những gì là sai? Bất kỳ cách giải quyết nào được biết cho vấn đề này? Tôi đã làm theo phương pháp được đề xuất trong https://developers.google.com/appengine/docs/java/endpoints/consume_android#making-authenticated-calls để thiết lập ứng dụng khách Android của tôi.
Cảm ơn. Tôi sẽ thử cách giải quyết khác. Ít nhất tôi biết và có thể chờ đợi một bugfix ngay bây giờ. – user2072160
Dường như điều này vẫn chưa được khắc phục. Tôi có một điểm cuối phụ trợ đám mây trả về null bất cứ khi nào tôi gọi getUserId. Mặc dù, có cần sử dụng id người dùng không? Email cũng là duy nhất và tôi không nghĩ rằng có thể cho người dùng thay đổi địa chỉ email của họ. – sthomps
Bất kỳ sự tin tưởng nào khi làm việc này? Đang cố gắng quyết định triển khai công việc tồi tệ này xung quanh hoặc sử dụng email làm khóa. – Patrick