Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JavaScriptから使うFirebase

 JavaScriptから使うFirebase

FirebaseをWebページのJavaScriptで使う方法の概説です。

Avatar for Takuji Shimokawa

Takuji Shimokawa

March 08, 2016

Other Decks in Programming

Transcript

  1. 'JSFCBTFͷσʔλ͸̍ͭͷ+40/ΦϒδΣΫτ { "messages" : { "-KBmsNUshgxhTjcjFi-7" : { "name" :

    "shimo", "text" : "͜Μʹͪ͸" }, "-KBmsPV_vfbOfsRKNqQr" : { "name" : "shimo", "text" : "͜Μ͹Μ͸" } } }
  2. σʔλϕʔεͷࢀরͷऔಘ // JSONΦϒδΣΫτͷϧʔτͷࢀর var rootRef = new Firebase(“https://<YOUR-APP-ID>.firebaseio.com/“); // ϧʔτͷ௚Լʹ͋ΔmessagesΩʔࢀর

    var messageRef = rootRef.child("messages"); // ϧʔτͷ௚Լʹ͋ΔmessagesΩʔࢀর var messagesRef = new Firebase(“https://<YOUR-APP-ID>.firebaseio.com/messages"); ࢀর͸ɺ+40/πϦʔ্ͷಛఆͷ৔ॴΛࢦࣔ͢͠΋ͷ σʔλͷಡΈॻ͖͢Δʹ͸·ͣࢀরΛऔಘ͢Δ
  3. { "users" : { "taro" : { "name" : "Taro",

    "age" : 30 } } } var userRef = new Firebase(“https://<YOUR-APP-ID>.firebaseio.com/users/taro"); userRef.set({name: "Taro", age: 30}); อଘޙͷσʔλϕʔεͷ಺༰
  4. var messagesRef = new Firebase("https://<YOUR-APP-ID>.firebaseio.com/messages"); messagesRef.push({name: "Taro", text: “Goodbye"}); {

    "messages" : { "-KBmsNUshgxhTjcjFi-7" : { "name" : "Taro", "text" : "Hello" }, "-KBmsPV_vfbOfsRKNqQr" : { "name" : "Taro", "text" : "Goodbye" } } } ߋ৽ޙͷσʔλϕʔεͷঢ়ଶ ࣗಈੜ੒͞ΕΔ
  5. σʔλͷಡΈग़͠ํ๏ w ࢀরʹίʔϧόοΫؔ਺Λొ࿥͢Δ w PO lΠϕϯτछผz DBMMCBDL  w PODF

    lΠϕϯτछผz DBMMCBDL  w Πϕϯτͷछྨ w WBMVF w DIJME@BEEFE w DIJME@DIBOHFE w DIJME@SFNPWFE w DIJME@NPWFE
  6. { "messages" : { "-KBmsNUshgxhTjcjFi-7" : { "name" : "Taro",

    "text" : "Hello" }, "-KBmsPV_vfbOfsRKNqQr" : { "name" : "Taro", "text" : "Goodbye" } } } var ref = new Firebase("https://<YOUR-APP-ID>.firebaseio.com/messages"); ref.on("value", function(snapshot) { console.log(snapshot.val()); }); σʔλϕʔεͷ಺༰ TOBQTIPUWBM ίʔϧόοΫʹ౉͞ΕΔͷ͸%BUB4OBQTIPUܕͷΦϒδΣΫτ IUUQTXXXpSFCBTFDPNEPDTXFCBQJEBUBTOBQTIPU
  7. PO lDIJME@BEEFEz DBMMCBDL w ࢀরͷࢠϊʔυΛҰͭͣͭॱ൪ʹऔಘ͢Δ w యܕతʹ͸ɺQVTI Ͱ࡞ΒΕͨϦετΛࢦࣔ͢͠ࢀর͔Βɺ
 ͦͷϦετͷ߲໨Λॱʹऔಘ͢Δ w

    طଘͷσʔλ͕͋Δ৔߹͸ɺҰ௨ΓσʔλΛಡΈग़͢ w ͦͷޙɺࢠϊʔυ͕௥Ճ͞ΕΔͨͼʹɺίʔϧόοΫ͕
 ݺ͹ΕΔ
  8. var ref = new Firebase("https://<YOUR-APP-ID>.firebaseio.com/messages"); ref.on(“child_added", function(snapshot) { console.log(snapshot.val()); });

    σʔλϕʔεͷ಺༰ { "messages" : { "-KBmsNUshgxhTjcjFi-7" : { "name" : "Taro", "text" : "Hello" }, "-KBmsPV_vfbOfsRKNqQr" : { "name" : "Taro", "text" : "Goodbye" } } } TOBQTIPUWBM
  9. ͦͷଞͷΠϕϯτ w PO lDIJME@DIBOHFEz DBMMCBDL  w ࢀরͷࢠϊʔυͷ஋͕มԽͨ࣌͠ʹίʔϧόοΫ͕ݺ͹ΕΔ w PO

    lDIJME@SFNPWFEz DBMMCBDL  w ࢀরͷࢠϊʔυ͕࡟আ͞Εͨ࣌ʹίʔϧόοΫ͕ݺ͹ΕΔ w PO lDIJME@NPWFEz DBMMCBDL  w Ϧετσʔλ಺ͰͷࢠϊʔυͷҐஔ͕มԽͨ͠Βݺ͹ΕΔ w Ϧετ಺Ͱͷॱং͕มΘΔͷ͸QSJPSJUZ͕มԽͨ࣌͠
  10. Ϧετσʔλऔಘ࣌ͷ৚݅௥Ճ w ฒͼॱͷࢦఆ w PSEFS#Z$IJME  w PSEFS#Z,FZ  w

    PSEFS#Z7BMVF  w PSEFS#Z1SJPSJUZ  w औಘ݅਺ͷ੍ݶ w MJNJU5P'JSTU  w MJNJU5P-BTU  w ൣғͷࢦఆ w TUBSU"U  w FOE"U  w FRVBM5P ref.orderByPriority() .startAt(100) .limitToFirst(20) .once('value', function(snapshot) { console.log(snapshot.val()); }); ࢖༻ྫ
  11. ϗεςΟϯάखॱ $ npm install -g firebase-tools $ firebase init $

    firebase deploy ίϚϯυϥΠϯπʔϧΛΠϯετʔϧ͢Δ ϓϩδΣΫτͷσΟϨΫτϦΛॳظԽ͢Δ ࢖༻͢Δ'JSFCBTFΞϓϦέʔγϣϯΛબ୒͢Δ ॳճ࣮ߦ࣌ʹ͸ઌʹϩάΠϯ͢ΔΑ͏ٻΊΒΕΔ ϓϩδΣΫτΛެ։͢Δ IUUQT\ΞϓϦέʔγϣϯ*%^pSFCBTFBQQDPNʹެ։͞ΕΔ pSFCBTFίϚϯυ͕࢖͑ΔΑ͏ʹͳΔ ઃఆϑΝΠϧpSFCBTFKTPOͱɺ)5.-ϑΝΠϧ౳Λஔ͘σΟϨΫτϦ͕࡞੒͞ΕΔ
  12. ηΩϡϦςΟʹؔ͢ΔτϐοΫ w Ϣʔβೝূ w &ϝʔϧˍύεϫʔυ w 0"VUI 'BDFCPPL 5XJUUFS (JU)VC

    (PPHMF  w ಗ໊ w ΧελϜ w ΞΫηεݖݶͷઃఆ w ೖྗσʔλͷݕূ
  13. var ref = new Firebase(‘https://<YOUR-APP-ID>.firebaseio.com/.info/connected'); ref.on("value", function(snap) { if (snap.val()

    === true) { console.log("online"); } else { console.log("offline"); } }); w ࣗ෼ͷΦϯϥΠϯঢ়ଶΛมԽΛݕ஌ var lastOnlineRef = new Firebase("users/taro/lastOnline"); lastOnlineRef.onDisconnect().set(Firebase.ServerValue.TIMESTAMP); w ઀ଓ͕੾Εͨ࣌ʹ஋Λߋ৽ w ΦϑϥΠϯதʹ΋σʔλͷอଘ͕Ͱ͖ͯɺΦϯϥΠϯ
 ෮ؼ࣌ʹαʔόͱಉظ
  14. ऴ

  15. খٕɿࣗಈੜ੒͞ΕΔΩʔΛσʔλʹೖΕΔ ۭQVTI ͯ͠TFU var messagesRef = new Firebase("https://<YOUR-APP-ID>.firebaseio.com/messages"); var messageRef

    = messagesRef.push(); messageRef.set({id: messageRef.key(), name: "Taro", text: “Goodbye"}); { "messages" : { "-KBmsNUshgxhTjcjFi-7" : { "id" : "-KBmsNUshgxhTjcjFi-7", "name" : "Taro", "text" : "Hello" } } } ߋ৽ޙͷσʔλϕʔεͷঢ়ଶ