0

我有一個使用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實時數據庫調用到需要身份驗證的區域。並且終端設置正確,因爲我可以對我的其他終端(目前不需要身份驗證)進行未經身份驗證的呼叫。這只是兩個被打破的組合。

回答

0

如您在Google Groups post中所述,您需要從配置中刪除SystemServiceServlet,並從列表中刪除com.google.appengine:appengine-endpoints依賴項。