Javascript 如何使用firebase.push-in Clojurescript?我的数据正确吗?

Javascript 如何使用firebase.push-in Clojurescript?我的数据正确吗?,javascript,firebase,clojurescript,Javascript,Firebase,Clojurescript,我正在尝试。将一些数据推送到我的Firebase,但在我的Chrome控制台中出现以下错误: 未捕获错误:Firebase.push失败:第一个参数在属性“arr.0”中包含无效密钥(cljs$lang$protocol\u mask$partition0$)。键必须是非空字符串,并且不能包含“.”、“$”、“/”、“[”或“]” 这是我的密码: fb (js/Firebase. "https://example.firebaseio.com/example-listings") (def a

我正在尝试
。将
一些数据推送到我的Firebase,但在我的Chrome控制台中出现以下错误:

未捕获错误:Firebase.push失败:第一个参数在属性“arr.0”中包含无效密钥(cljs$lang$protocol\u mask$partition0$)。键必须是非空字符串,并且不能包含“.”、“$”、“/”、“[”或“]”

这是我的密码:

fb (js/Firebase. "https://example.firebaseio.com/example-listings")

(def app-state (atom {"post" { :first_name "Billy"
                               :last_name "Bob"
                               :location "CA"
                               :email "bob@aol.com"
                               :website "www.pwt.com"
                          }}))

(def postData (get-in @app-state ["post"]))
(.push fb postData)

我还尝试用字符串
:first\u name
替换键
“first\u name”
。我知道Clojure的数据结构与JavaScript有点不同。是不是Firebase不喜欢我的Clojure地图

Firebase需要一个JavaScript对象来调用其API。您正在向它传递一个Clojure数据结构(在本例中是一个映射)。在将Clojure数据结构传递给Firebase函数之前,必须将其转换为JavaScript对象

因此,不是:

(.push fb postData)
您需要执行以下操作:

(.push fb (clj->js postData))