使用Clojure Hangs中的Firebase v3 Java库

时间:2017-07-13 14:17:49

标签: firebase clojure firebase-realtime-database credentials

根据mrmcc3's usage通过Java / Android Firebase库从Clojure读取或写入Firebase v3。我怀疑是凭据问题,但看不到任何错误。 matchbox使用较旧的com.firebase.client库进行类似的调用,如果它有所不同。

Maven依赖

[com.google.firebase/firebase-server-sdk "3.0.3"]

我下载了服务帐户凭据并将其按摩到FirebaseDatabase实例中,我可以调用(child (ref db) "some-key")来获取连贯的数据库网址。

但是,任何实际读取(通过值或子侦听器),设置或推送新数据的调用都会挂起。

挂码

(let [db-name "my-db"
      creds   (io/input-stream "service-account-creds.json")
      opts    (options "https://my-db.firebaseapp.com/" creds)
      app     (get-or-init db-name opts)  ; (get-app "[DEFAULT]")
      db      (app->db app)
      root    (ref db)]
    (def prom (get (child root "some-key"))))

prom
=> #object[clojure.core$promise$reify__7005 0x4f7066a6 {:status :pending, :val nil}]

;; sanity check DB:
(app->db app)
=> #object[com.google.firebase.database.FirebaseDatabase
    0x1580407f
    "com.google.firebase.database.FirebaseDatabase@1580407f"]

=> Promise never resolves:
@prom  ;; hangs forever

我怀疑与凭据相关的内容,但没有用户反馈,无法调试。我试图解决这个问题几个小时 - 大多数官方文档显示为deprecated或链接到3岁的图书馆。

我能够从JavaScript / ClojureScript中读取和写入此Firebase数据库 - 规则允许所有写入。

我做错了什么?

0 个答案:

没有答案