我有一個使用Google Cloud Endpoints框架設置的API。其中一個端點需要auth,這顯然可以通過Android上的Firebase Auth完成。但給出here的示例適用於通過Firebase提供的Google帳戶。我只是使用電子郵件和密碼。所以我使用的是HttpRequestInitializer here而不是GoogleAccountCredential。但是,當我試圖對經認證的終點,我收到了503響應與服務器產生下面的堆棧跟蹤呼叫:我如何才能讓Google Cloud Endpoints使用Firebase身份驗證(非Google帳戶)進行身份驗證呼叫?
Uncaught exception from servlet
java.lang.IllegalStateException: method_info is not set in the request
at com.google.api.server.spi.auth.EspAuthenticator.authenticate(EspAuthenticator.java:67)
at com.google.api.server.spi.request.Auth.authenticate(Auth.java:85)
at com.google.api.server.spi.request.ServletRequestParamReader.getUser(ServletRequestParamReader.java:157)
at com.google.api.server.spi.request.ServletRequestParamReader.deserializeParams(ServletRequestParamReader.java:114)
at com.google.api.server.spi.request.ServletRequestParamReader.read(ServletRequestParamReader.java:261)
at com.google.api.server.spi.SystemService.invokeServiceMethod(SystemService.java:354)
at com.google.api.server.spi.SystemServiceServlet.execute(SystemServiceServlet.java:113)
at com.google.api.server.spi.SystemServiceServlet.doPost(SystemServiceServlet.java:71)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
...
任何想法?
Firebase身份驗證本身設置正確,因爲我可以將Firebase實時數據庫調用到需要身份驗證的區域。並且終端設置正確,因爲我可以對我的其他終端(目前不需要身份驗證)進行未經身份驗證的呼叫。這只是兩個被打破的組合。