OSDN Git Service

Regular updates
[twpd/master.git] / firebase.md
1 ---
2 title: Firebase
3 prism_languages: [coffeescript]
4 tags: [WIP]
5 layout: 2017/sheet
6 ---
7
8 ### Authenticating
9
10 ```js
11 FB = new Firebase('https://xxx.firebase.io')
12 FB.auth(TOKEN, (err, result) => { ···})
13 ```
14
15 ```js
16 FB.authAnonymously(···)
17 FB.authWithPassword(···)
18 FB.authWithOAuthPopup(···)
19 FB.authWithOAuthToken(···)
20 ```
21
22 ### Using
23
24 ```js
25 Users = FB.child('users')
26 ```
27
28 ```js
29 // Create
30 user = Users.push(first: "Frank", last: "Sinatra")
31 ```
32
33 ```js
34 // Retrieve
35 user = Users.child('alan')  // gets `users/alan`
36 ```
37
38 ```js
39 // Update
40 user.set(first: "Miles", last: "Davis")
41 user.update(first: "Miles")
42 user.setWithPriority({ ··· }, priority)
43 ```
44
45 ```js
46 // Destroy
47 user.remove()
48 ```
49
50 ```js
51 // Getting
52 user.name()  // primary id
53
54 user.once('value', (snap) => {
55   snap.name()  // primary id
56   snap.val()   // value
57 }, (err) => {
58   ···
59 })
60 ```
61
62 ```js
63 // traversal
64 user.parent()
65 ```
66
67 ### Querying
68
69 ```coffeescript
70 Users = FB.child('users')
71 Users
72   .startAt(1000)
73   .limit(50)
74   .equalTo(priority, [name])
75   .on 'child_added', (snap) -> ···
76 ```
77 ### Lists
78
79 ```coffeescript
80 Posts = FB.child('posts')
81 post = Posts.push({ title: "How to do things", author: "alan" })
82 ```
83
84 ## References
85 {: .-one-column}
86
87 * <https://www.firebase.com/docs/web/api/>
88 * <https://www.firebase.com/docs/web/recipes.html>