如何在Java中使用Firebase REST API?

我需要能够将一些数据更新到firebase而无需将firebase设置为online,因此只有指定的数据在没有wifi可用时才会被发送。 我一直无法找到有关如何在Java中使用REST API的任何文档或指南。 有人可以帮我吗?

不幸的是,没有现有的Java SDK for Firebase REST接口(我可以找到)。 相反,您需要使用您选择的HTTP客户端制作一个。

以下是使用Jersey的示例:

import javax.ws.rs.core.MediaType; import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.ClientHandlerException; import com.sun.jersey.api.client.UniformInterfaceException; import com.vnomicscorp.firebase.sdk.FirebaseSdk; import com.vnomicscorp.firebase.sdk.FirebaseSdkException; public class FirebaseSdkJersey { private static final String DEFAULT_AUTH_PARAM_NAME = "auth"; private static final String DEFAULT_PATH_FORMAT = "%s.json"; private final String credentials; private final String url; private final Client client; private String authParamName = DEFAULT_AUTH_PARAM_NAME; private String pathFormat = DEFAULT_PATH_FORMAT; public FirebaseSdkJersey(String url, String credentials, Client client) { this.url = url; this.credentials = credentials; this.client = client; } public void setValue(String path, String value) throws Exception { client.resource(url).path(String.format(pathFormat, path)) .queryParam(authParamName, credentials) .type(MediaType.APPLICATION_JSON).entity(value) .put(String.class); } public String getValue(String path) throws Exception { return client.resource(url).path(String.format(pathFormat, path)) .queryParam(authParamName, credentials).get(String.class); } public void deleteValue(String path) throws Exception { client.resource(url).path(String.format(pathFormat, path)) .queryParam(authParamName, credentials).delete(String.class); } } 

需要以下依赖项

   com.sun.jersey jersey-client 1.19  

构造看起来像这样:

  Client client = Client.create(); sdk = new FirebaseSdkJersey(url, credentials, client); 

其中url是Firebaseurl, credentials是管理控制台中生成的密钥。