java - Firebase 访问 Hackernews

标签 java firebase

所以我想查看 Firebase 并尝试连接到 Hackernews火力地堡数据库。 我正在使用 com.google.firebase:firebase-server-sdk:3.0.3 SDK。

但我不确定为什么我必须输入服务帐户。

@Bean
fun firebase(): DatabaseReference {
    val options = FirebaseOptions.Builder()
            .setDatabaseUrl("https://hacker-news.firebaseio.com/")
            .setServiceAccount(this.javaClass.getResourceAsStream("/account.json"))
            .build()

    val app = FirebaseApp.initializeApp(options)
    val instance = FirebaseDatabase.getInstance(app)

    return instance.reference
}

为什么在这种情况下需要 setServiceAccount?如果我将其排除在外,则会出现以下异常:

Caused by: java.lang.IllegalStateException: Service Account must be provided.
at com.google.firebase.internal.Preconditions.checkState(Preconditions.java:173) ~[firebase-server-sdk-3.0.3.jar:na]
at com.google.firebase.FirebaseOptions.<init>(FirebaseOptions.java:129) ~[firebase-server-sdk-3.0.3.jar:na]

有没有办法用 Java 客户端匿名连接到 Firebase? 这个 JsFiddle 在没有服务帐户的情况下工作: http://jsfiddle.net/firebase/cm8ne9nh/

如果我连接到我自己的项目,这个工作非常好。我确实有一个适合我自己的项目的服务帐户......

我以为我可以用同样的方式连接 Java。 有任何想法吗 ?有没有办法连接到 Hackernews使用 Firebase Java API?

最佳答案

遗憾的是,Java SDK 仅提供两种版本。 Java-Client-Android 和 Java-Server。这意味着,如果你想要纯客户端代码,你只能在 android 上真正使用它。这一直是可用客户端库的一个奇怪限制。

但是,您可以做的是用 Java 包装 firebase 提供的 REST API,使用 HTTP 请求执行您在任何客户端库中执行的所有操作。

这里是已经实现此功能的存储库示例:https://github.com/j-fischer/rest-on-fire

您可以使用那个,也可以使用您自己的。但是为了在没有服务帐户的情况下使用 firebase,您将不得不使用 REST Api 或仅为 Android、iOS 和 Web 编写的官方客户端库。

关于java - Firebase 访问 Hackernews,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50974755/

相关文章:

java - Kafka 不会均匀地填充主题中的分区

java - 使用 runnable 制作 GUI 与匿名对象之间的区别

swift - 如何使用firebase在ios中实现私聊

ios - Firestore 崩溃

firebase - Firebase 存储上的 CORS

android - 仅在尝试检索 task.getResult() 时抛出 Firebase 电子邮件/密码身份验证异常

java - 如何使用java流按值对Map进行排序?

java - 银行计划的转账和提款方式出现问题

angular - 使用 AngularFireObject 和 switchMap

java - 通过匿名接口(interface)进行 Fragment 到 Activity 的通信