【问题标题】:How to use Firebase REST API in Java? [closed]如何在 Java 中使用 Firebase REST API? [关闭]
【发布时间】:2016-02-05 16:08:19
【问题描述】:

我需要能够在不将 firebase 设置为在线的情况下将一些数据更新到 firebase,以便在没有 wifi 可用的情况下仅发送指定的数据。我一直找不到任何关于如何在 Java 中使用 REST API 的文档或指南。有人可以帮我吗?

【问题讨论】:

    标签: java android rest firebase


    【解决方案1】:

    不幸的是,目前还没有适用于 Firebase REST 接口的 Java SDK(我可以找到)。相反,您需要使用您选择的 HTTP 客户端创建一个。

    这是一个使用泽西岛的例子:

    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);
        }
    }
    

    需要以下依赖

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-client</artifactId>
            <version>1.19</version>
        </dependency>
    

    结构如下:

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

    url 是 Firebase 网址,credentials 是在管理控制台中生成的密钥。

    【讨论】:

      猜你喜欢
      • 2021-12-19
      • 2017-12-05
      • 1970-01-01
      • 1970-01-01
      • 2013-12-20
      • 2019-07-03
      • 2013-05-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多