From 9b5b3dff3c3b7983982ce713d2d6657736dc585e Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Wed, 6 Jul 2016 11:34:22 -0600 Subject: [PATCH 1/6] update deps --- build.boot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.boot b/build.boot index c1876e1..1987c9b 100644 --- a/build.boot +++ b/build.boot @@ -4,7 +4,7 @@ [org.clojure/clojurescript "1.7.228" :scope "provided"] ;; packaged dependencies [com.firebase/firebase-client-jvm "2.5.2" :exclusions [org.apache.httpcomponents/httpclient]] - [cljsjs/firebase "2.4.1-0"] + [cljsjs/firebase "3.0.5-rc2-0"] [org.apache.httpcomponents/httpclient "4.5.2"] ;; optional namespace dependencies [org.clojure/core.async "0.2.374" :scope "provided"] From f913bef0e35bf6738be7ad6fdda51c4006914b47 Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Wed, 6 Jul 2016 12:36:00 -0600 Subject: [PATCH 2/6] added firebase-cljs --- build.boot | 1 + 1 file changed, 1 insertion(+) diff --git a/build.boot b/build.boot index 1987c9b..78e606e 100644 --- a/build.boot +++ b/build.boot @@ -5,6 +5,7 @@ ;; packaged dependencies [com.firebase/firebase-client-jvm "2.5.2" :exclusions [org.apache.httpcomponents/httpclient]] [cljsjs/firebase "3.0.5-rc2-0"] + [degree9/firebase-cljs "0.3.0"] [org.apache.httpcomponents/httpclient "4.5.2"] ;; optional namespace dependencies [org.clojure/core.async "0.2.374" :scope "provided"] From 5882a508f67d0bcebf610ac49efa045f82a77a4e Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Wed, 6 Jul 2016 12:36:34 -0600 Subject: [PATCH 3/6] updated connect --- src/matchbox/core.cljc | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/matchbox/core.cljc b/src/matchbox/core.cljc index 7318fb7..bc6b405 100644 --- a/src/matchbox/core.cljc +++ b/src/matchbox/core.cljc @@ -27,8 +27,8 @@ [clojure.walk :as walk] [matchbox.utils :as utils] [matchbox.registry :refer [register-listener register-auth-listener disable-auth-listener!]] - [matchbox.serialization.keyword :as keyword] - #?(:cljs cljsjs.firebase))) + [matchbox.serialization.keyword :as keyword]) + #?(:cljs (:require [cljsjs.firebase] [firebase-cljs.core :as fb]))) ;; constants @@ -146,13 +146,17 @@ (let [path (utils/korks->path korks)] (if-not (seq path) ref (.child ref path)))) -(defn connect - "Create a reference for firebase" - ([url] - #?(:clj (Firebase. url) - :cljs (js/Firebase. url))) - ([url korks] - (get-in (connect url) korks))) +#?(:clj (defn connect + "Create a Firebase connection" + ([svccred db] (-> FirebaseOptions. + .Builder + (.setServiceAccount (FileInputStream. svccred)) + (.setDatabaseUrl db) + .build))) + :cljs (defn connect + "Create a Firebase connection" + ([conf] (fb/init conf)) + ([conf name] (fb/init conf name)))) (defn parent "Immediate ancestor of reference, if any" From 1e87090fba41832f7c7d236e3e2437221b7b4448 Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Wed, 6 Jul 2016 12:59:54 -0600 Subject: [PATCH 4/6] added v3 java sdk --- build.boot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.boot b/build.boot index 78e606e..4967f34 100644 --- a/build.boot +++ b/build.boot @@ -3,7 +3,7 @@ '[[org.clojure/clojure "1.7.0" :scope "provided"] [org.clojure/clojurescript "1.7.228" :scope "provided"] ;; packaged dependencies - [com.firebase/firebase-client-jvm "2.5.2" :exclusions [org.apache.httpcomponents/httpclient]] + [com.google.firebase/firebase-server-sdk "3.0.1" :exclusions [org.apache.httpcomponents/httpclient]] [cljsjs/firebase "3.0.5-rc2-0"] [degree9/firebase-cljs "0.3.0"] [org.apache.httpcomponents/httpclient "4.5.2"] From 807029d430deed55be46092446e3d914bae83519 Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Wed, 6 Jul 2016 14:18:25 -0600 Subject: [PATCH 5/6] some ns changes --- src/matchbox/core.cljc | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/matchbox/core.cljc b/src/matchbox/core.cljc index bc6b405..c66cd15 100644 --- a/src/matchbox/core.cljc +++ b/src/matchbox/core.cljc @@ -4,31 +4,32 @@ [get-in set! reset! conj! swap! dissoc! deref parents key take take-last]) #?(:clj (:import - [com.firebase.client - AuthData + [com.google.firebase.database + ;AuthData ChildEventListener - Config + ;Config DataSnapshot - Firebase - FirebaseError + DatabaseReference + DatabaseError MutableData ServerValue Transaction Transaction$Handler ValueEventListener - Firebase$CompletionListener + DatabaseReference$CompletionListener Transaction$Result Logger$Level - Firebase$AuthResultHandler - Firebase$AuthStateListener] + ;Firebase$AuthResultHandler + ;FirebaseAuth$AuthStateListener + ] (java.util HashMap ArrayList))) (:require [clojure.string :as str] [clojure.walk :as walk] [matchbox.utils :as utils] [matchbox.registry :refer [register-listener register-auth-listener disable-auth-listener!]] - [matchbox.serialization.keyword :as keyword]) - #?(:cljs (:require [cljsjs.firebase] [firebase-cljs.core :as fb]))) + [matchbox.serialization.keyword :as keyword] + #?@(:cljs [[cljsjs.firebase] [firebase-cljs.core :as fb]]))) ;; constants @@ -70,12 +71,12 @@ (declare reset!) (defn throw-fb-error [err & [msg]] - (throw (ex-info (or msg "FirebaseError") {:err err}))) + (throw (ex-info (or msg "DatabaseError") {:err err}))) #?(:clj (defn- wrap-cb [cb] - (reify Firebase$CompletionListener - (^void onComplete [_ ^FirebaseError err ^Firebase ref] + (reify DatabaseReference$CompletionListener + (^void onComplete [_ ^DatabaseError err ^Firebase ref] (if err (throw-fb-error err "Cancelled") (cb ref)))))) #?(:clj @@ -84,7 +85,7 @@ (reify ValueEventListener (^void onDataChange [_ ^DataSnapshot ds] (cb (ds-wrapper ds))) - (^void onCancelled [_ ^FirebaseError err] + (^void onCancelled [_ ^DatabaseError err] (if err (throw-fb-error err "Cancelled") (cb ref))))))) #?(:clj @@ -94,7 +95,7 @@ (let [current (hydrate (.getValue d))] (reset! d (apply f current args)) (Transaction/success d))) - (^void onComplete [_ ^FirebaseError error, ^boolean committed, ^DataSnapshot d] + (^void onComplete [_ ^DatabaseError error, ^boolean committed, ^DataSnapshot d] (if (and cb (not error) committed) (cb (hydrate (.getValue d)))))))) @@ -109,7 +110,7 @@ (if moved (moved (wrap-snapshot d)))) (^void onChildRemoved [_ ^DataSnapshot d] (if removed (removed (wrap-snapshot d)))) - (^void onCancelled [_ ^FirebaseError err] + (^void onCancelled [_ ^DatabaseError err] (throw-fb-error err "Cancelled"))))) #?(:clj @@ -441,7 +442,7 @@ (reify Firebase$AuthResultHandler (^void onAuthenticated [_ ^AuthData auth-data] (if cb (cb nil (auth-data->map auth-data)))) - (^void onAuthenticationError [_ ^FirebaseError err] + (^void onAuthenticationError [_ ^DatabaseError err] (if cb (cb err nil)))))) (defn create-user From 4508936717fcb48416f015a2c7bf415d89709e51 Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Wed, 6 Jul 2016 17:34:28 -0600 Subject: [PATCH 6/6] ns updates --- src/matchbox/core.cljc | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/matchbox/core.cljc b/src/matchbox/core.cljc index c66cd15..4a678fd 100644 --- a/src/matchbox/core.cljc +++ b/src/matchbox/core.cljc @@ -4,6 +4,10 @@ [get-in set! reset! conj! swap! dissoc! deref parents key take take-last]) #?(:clj (:import + [com.google.firebase + FirebaseOptions] + [com.google.firebase.auth + FirebaseAuth] [com.google.firebase.database ;AuthData ChildEventListener @@ -20,12 +24,12 @@ Transaction$Result Logger$Level ;Firebase$AuthResultHandler - ;FirebaseAuth$AuthStateListener ] (java.util HashMap ArrayList))) (:require [clojure.string :as str] [clojure.walk :as walk] + #?(:clj [clojure.java.io :as io]) [matchbox.utils :as utils] [matchbox.registry :refer [register-listener register-auth-listener disable-auth-listener!]] [matchbox.serialization.keyword :as keyword] @@ -56,7 +60,7 @@ #_#?(:clj (defn set-logger-level! [key] (assert (contains? logger-levels key) (format "Unknown logger level: `%s`" key)) - (.setLogLevel ^Config (Firebase/getDefaultConfig) + (.setLogLevel ^Config (DatabaseReference/getDefaultConfig) (logger-levels key)))) @@ -76,7 +80,7 @@ #?(:clj (defn- wrap-cb [cb] (reify DatabaseReference$CompletionListener - (^void onComplete [_ ^DatabaseError err ^Firebase ref] + (^void onComplete [_ ^DatabaseError err ^DatabaseReference ref] (if err (throw-fb-error err "Cancelled") (cb ref)))))) #?(:clj @@ -149,9 +153,9 @@ #?(:clj (defn connect "Create a Firebase connection" - ([svccred db] (-> FirebaseOptions. + ([svccred db] (-> FirebaseOptions .Builder - (.setServiceAccount (FileInputStream. svccred)) + (.setServiceAccount (io/input-stream svccred)) (.setDatabaseUrl db) .build))) :cljs (defn connect @@ -275,7 +279,7 @@ ;; -(defn ref? [x] (instance? #?(:clj Firebase :cljs js/Firebase) x)) +(defn ref? [x] (instance? #?(:clj DatabaseReference :cljs js/Firebase) x)) (defn- with-ds [ref-or-ds f & [cb]] (if (ref? ref-or-ds) @@ -428,7 +432,7 @@ (cb err (js->clj info :keywordize-keys true))) identity) :clj - (reify Firebase$AuthStateListener + (reify FirebaseAuth$AuthStateListener (^void onAuthStateChanged [_ ^AuthData auth-data] (if cb (cb nil (auth-data->map auth-data))))))) @@ -439,7 +443,7 @@ (cb err (js->clj info :keywordize-keys true))) identity) :clj - (reify Firebase$AuthResultHandler + (reify FirebaseAuth$AuthResultHandler (^void onAuthenticated [_ ^AuthData auth-data] (if cb (cb nil (auth-data->map auth-data)))) (^void onAuthenticationError [_ ^DatabaseError err]