---
# System prepended metadata

title: Firestore
tags: [資料庫相關]

---

# Firestore
https://www.youtube.com/watch?v=v_hR4K4auoQ&list=PLl-K7zZEsYLluG5MCVEzXAQ7ACZBCuZgZ&index=4
## 介紹
![](https://i.imgur.com/SQVsPG7.png)
![](https://i.imgur.com/BJtCIRd.png)


記住後端跟前端不一樣 他們是sdk
backend是 adminsdk
所以他們會有rule的問題

## 時間
https://pretired.dazwilkin.com/posts/210506/

## app check
![image.png](https://hackmd.io/_uploads/rk7nltw7p.png)

## SDK
![image.png](https://hackmd.io/_uploads/H1u0FPuQp.png)
![image.png](https://hackmd.io/_uploads/Hy4EcPdQp.png)


## Firebase 安全性規則
https://firebase.google.com/codelabs/firebase-rules?hl=en#0

##. firebase 排行榜
https://firebase.google.com/codelabs/build-leaderboards-with-firestore?hl=en#6

## doc collection ....
![](https://i.imgur.com/W1NLeaD.png)
![](https://i.imgur.com/Bs4h5sC.png)
![Uploading file..._ra1vuvxmx]()

## 分佈計時器
![image.png](https://hackmd.io/_uploads/HyTm9VGQa.png)

https://firebase.google.com/docs/firestore/solutions/counters?hl=zh-tw

官方有套件
    
## 模糊查詢
![image.png](https://hackmd.io/_uploads/H1oKhmfm6.png)
![image.png](https://hackmd.io/_uploads/ryX_zVGma.png)
![image.png](https://hackmd.io/_uploads/S1LAG4MQp.png)

    
## set vs update
![](https://hackmd.io/_uploads/BkB-e2Ry6.png)

## 數據建模
https://www.youtube.com/watch?v=35RlydUf6xo

## collection group![](https://i.imgur.com/sp27boh.png)
你可以找到一個餐廳的subcolltion他的評論
但如果你要跨sub查詢 是不能的 不能找全部餐廳四顆星的評論
所以要用 collection group query

## Maps, Arrays and Subcollections
sub
![](https://i.imgur.com/PPH8sEL.png)
因為會全部取出來 所以像這種要找xxx標題的書
如果context放在裡面 會直接爆掉 所以要拆開

而且也會有安全問題 每個人都可以用這個context的欄位 所以要拆開變成sub
再用權限去管理
### array
![](https://i.imgur.com/IGbyXwN.png)
好像是能對同一個array做兩次搜尋 這點可以確認

## 範例
https://www.youtube.com/watch?v=haMOUb3KVSo&list=PLl-K7zZEsYLluG5MCVEzXAQ7ACZBCuZgZ&index=5

## Security 
https://www.youtube.com/watch?v=eW5MdE3ZcAw&list=PLl-K7zZEsYLluG5MCVEzXAQ7ACZBCuZgZ&index=6

## 快照
![](https://i.imgur.com/dk4ebcp.png)
如果你客戶督 查詢一個colection 然後當他改變 他會丟回全部
![](https://i.imgur.com/suZCzNs.png)
大概像這樣

## orderBy
如果沒有會排不出來
![image](https://hackmd.io/_uploads/Hyet_8mY6.png)

## 配合cf
![image](https://hackmd.io/_uploads/Hk0eiU7Ka.png)



## index 
![](https://hackmd.io/_uploads/BJGUeij-a.png)


## query

###### tags: `資料庫相關`