隱私權政策
生效日期:2026 年 11 月 1 日
Climbio(climbio.app,以下稱「本 App」)是抱石路線工具。本 App 沒有帳號系統、沒有廣告,也不使用分析或追蹤工具。這份政策說明本 App 會處理哪些資料、存在哪裡。
1. 存在你裝置上的資料
- 你拍的牆面照片、岩點、路線、牆面名稱,都存在你手機或電腦的瀏覽器裡(IndexedDB),不會存到我們的伺服器。
- 語言、外觀、路線排序、是否看過導覽等偏好,存在瀏覽器的 localStorage。
- 相機只用於拍照與掃描 QR code,畫面不會上傳。
- 位置:用相機拍照新增牆面時,App 會向瀏覽器要一次目前位置(需要你同意);從相簿選照片時,App 會在你的裝置上讀照片檔案裡記錄的拍攝位置(照片有記錄的話)。位置只在你的裝置上跟 App 內建的岩館清單比對,判斷這面牆在哪一間岩館(也用岩館名稱當牆面名稱);存下來、同步的只有岩館名稱,分享路線時也會附上岩館名稱(讓大家找得到同一間岩館的牆);位置本身不會上傳、不會存下來。不同意或判斷不到時,可以自己選岩館,也能照常使用。
- 偵測岩點、描繪輪廓:新增牆面時,岩點偵測在你的手機上執行,照片不會為了偵測離開手機(第一次會從本網站下載偵測模型)。偵測完,App 會把照片(長邊最多 1024 像素)和岩點位置傳到我們在 Google Cloud(Firebase Cloud Functions,台灣機房)的函式描繪輪廓、整理外框,算完回傳結果。照片只在處理當下存在伺服器記憶體中,不會存檔、不會留下紀錄,也不會用來訓練模型。呼叫時需要 Firebase 的登入憑證(未登入 Google 時為匿名帳號),只用來防止濫用。
- 清除瀏覽器資料或移除 App,這些資料會一併刪除,我們無法幫你復原。
2. 分享路線圖
- 路線圖與短影片在你的裝置上產生。使用手機的系統分享或下載時,媒體本身不經過我們的伺服器;「分享到 LINE」只把邀請句和路線連結交給 LINE App,不上傳圖片或影片。路線連結、QR code、分享到 LINE 不用登入(見下一節)。
分享到 LINE 不需要 LINE 登入;本 App 不讀取 LINE 個人檔案,也不取得收件者名單。LINE 會依其隱私權政策處理送出的訊息。
3. 分享路線、同步牆面
- 帳號:分享路線不用登入。沒登入時,本 App 用匿名帳號(一組隨機的使用者 ID,不含姓名或 email)上傳分享,只用來防止濫用和計算每個帳號每天的分享數。登入只用來同步:用 Google 帳號登入時,Firebase Authentication 會處理你的 Google 帳號名稱、email 與使用者 ID,用來同步你的牆面。
- 手機 id:本 App 第一次打開時,在你的裝置上產生一組隨機的手機 id(不含姓名、email 或裝置資訊)。分享路線、回報完攀時會一起送出,只用來計算分享數和完攀人數;登入並同步時存在你的帳號底下,換手機時沿用。
- 同步(需要 Google 登入):登入後按「同步」,你的牆面照片、原始岩點檔(電腦算出的岩點外框)和牆面檔(牆名、尺寸、縮圖、你自己的岩點外框和彩色範圍、路線)上傳到 Climbio 的雲端儲存空間(Firebase Storage,美國機房),牆面清單(牆名)和攀爬紀錄存放在 Firestore 你的帳號底下;只有你登入的裝置能修改,用來同步到你的每台裝置。在任何一台刪除牆面,同步時清單那筆和雲端儲存空間的照片、岩點資料也會刪除,你其他的裝置同步時跟著刪。
- 分享:按分享時,這條路線(含路線用到的岩點外框、彩色範圍和路線圖上的署名)存放在 Firestore,同時記錄建立者的使用者 ID(匿名或 Google)和手機 id;這張照片和原始岩點檔(電腦算出的岩點外框,不含你自己修改的部分)放在 Climbio 的雲端儲存空間,同一張照片只存一份,給分享這張照片的路線共用。你自己的岩點檔不會分享出去。只有分享的帳號能修改或刪除分享的路線;改過後伺服器上的那份跟著更新,刪除你裝置上自己分享的路線或牆面,伺服器上公開的那份也會刪除。沒有分享路線用到的照片和原始岩點檔會自動刪除。分享的照片會由 Google Cloud Vision 自動檢查是否含有不當內容(色情、暴力),結果只供我們審查,不會用在其他用途。收到的人看到的是同一份路線,可以在同一面牆上加上自己的路線、在 Climbio 裡再分享(見服務條款第 4 條)。
- Google 登入只取得帳號名稱、email 與使用者 ID,不會要求存取你的 Google 雲端硬碟或其他 Google 資料。
- 雲端的照片和岩點資料只有登入 Firebase 的使用者(包含收到分享時的匿名登入)能讀取。分享的路線和照片:拿到連結的人看得到;有同一張照片的人(例如收過這面牆的線)也查得到這張照片所有分享的路線。分享時附上岩館的牆面,會列在 App 的「找牆面」裡那間岩館的公開牆面(牆名、縮圖、公開路線數),任何人都能收下整面牆和它所有分享的路線;照片被自動檢查判定可能含不當內容的不列出。
- 分享出去的內容會用來改進岩點偵測:第一次分享時的分享說明會列出這一點,按「分享」即表示同意。你分享的路線、照片和原始岩點檔可能被複製保存,用來評估和訓練 Climbio 的岩點偵測、輪廓描繪模型;這份副本只用在改進 Climbio 的岩點偵測,不會出售或提供給其他人,想刪除這份副本,請寫信給我們(見第 5 節)。
- 找點貓(電腦版):照片在你的電腦上處理,不上傳;發佈到找牆面的牆(照片與修好的岩點)視同分享,同樣可能用來評估和訓練岩點偵測;沒有發佈的照片不會離開你的電腦。發佈的牆你可以在「我發佈的牆」刪除,刪除會一併清掉共用的照片、預設岩點與別人在這面牆上的路線。
- 完攀人數:你在別人分享的路線上第一次記完攀或 Flash 時,本 App 會把那條路線和你的手機 id 送到伺服器(不用登入),出線的手機會看到「幾個人完攀」,只有人數,不會看到你的名字、帳號或其他紀錄。一台手機算一個人。
- 沒有分享的牆面(包括帳號同步的照片)不會用來開發、改進或訓練任何 AI/機器學習模型;透過 Google 登入取得的名稱、email 也不會。
收到分享的人點連結或掃描 QR code 時,本 App 會以匿名方式登入 Firebase(取得一組隨機的使用者 ID,不含姓名或 email)讀取分享的路線,再從 Climbio 的雲端儲存空間下載照片和原始岩點檔(手上已經有這面牆就不下載),存成收到的人自己的一份。出線者改過再分享的是另一條新線,收到的人會看到新線提示,收下才加進來。
4. 第三方服務
本 App 使用下列服務,這些服務會依各自的隱私權政策處理你的連線資訊(例如 IP 位址):
- Firebase Hosting:提供本 App 的網頁與輪廓模型。
- Google Firebase(Authentication、Firestore、Storage、Cloud Functions):同步與分享牆面、路線,雲端描繪輪廓;Google Cloud Vision:檢查分享的照片是否含有不當內容。見 Google 隱私權政策。
- jsDelivr、Google 的 gstatic:載入程式庫(偵測引擎、QR code、Firebase)。
- Google Fonts:載入路線圖上的字型(只下載字型檔,路線圖本身不會傳出去)。
- 其他網站的路線連結:Climbio 也收別人架的站分享的路線。打開或掃描這種連結時,本 App 直接從那個網站下載路線、照片和縮圖,那個網站會看到你的 IP 位址等連線資訊。那些網站不是我們經營的,依它們自己的政策處理。
我們不販售、不出租任何資料,也不把資料用於廣告。
5. 你的選擇與權利
- 不分享、不接收分享,本 App 只在雲端描繪輪廓時連到 Firebase(見第 1 節)。
- 登出後這台裝置不再同步。你可以隨時刪除牆面(同步時一併刪除帳號同步的雲端照片、岩點資料;你分享的路線也會從伺服器拿掉),或到 Google 帳戶的第三方存取權撤銷本 App 的權限。
- 有任何隱私問題,請寫信到 climbio.service@gmail.com 聯絡我們。
6. 兒童
本 App 不針對 13 歲以下兒童設計,也不會刻意收集兒童的個人資料。
7. 政策變更
這份政策若有變更,會更新本頁並修改上方的生效日期。
Privacy Policy
Effective date: November 1, 2026
Climbio (climbio.app, “the App”) is a bouldering route tool. The App has no account system, no ads, and no analytics or tracking. This policy explains what data the App handles and where it is stored.
1. Data on your device
- Your wall photos, holds, routes and wall names are stored in your browser on your phone or computer (IndexedDB). They are not stored on our servers.
- Preferences such as language, appearance, route sort order and whether you have seen the intro are stored in the browser’s localStorage.
- The camera is used only to take photos and scan QR codes; the camera feed is not uploaded.
- Location: when you take a photo to add a wall, the App asks the browser for your current location once (with your permission); when you pick a photo from your library, the App reads the capture location recorded in the photo file on your device (if the photo has one). The location is compared only on your device with the climbing gym list built into the App, to tell which gym the wall is in (and to name the wall after it). Only the gym name is stored and synced, and shared routes include the gym name (so others can find walls at the same gym); the location itself is not uploaded or stored. If you decline or no gym is found, you can choose the gym yourself, and the App works normally.
- Hold detection and outline tracing: when you add a wall, hold detection runs on your phone, so the photo does not leave your phone for detection (the detection model is downloaded from this site the first time). After detection, the App sends the photo (at most 1024 pixels on the long side) and hold positions to our functions on Google Cloud (Firebase Cloud Functions, Taiwan region) to trace and tidy hold outlines, and the results are returned. The photo exists only in server memory while it is processed; it is not saved, not logged, and not used to train models. The request carries a Firebase sign-in token (an anonymous account if you are not signed in to Google), used only to prevent abuse.
- Clearing your browser data or removing the App deletes this data, and we cannot recover it.
2. Sharing a route picture
- Route images and videos are created on your device. System sharing and downloads do not upload the media to our servers. “Share to LINE” only hands the invitation and the route link to the LINE app; no image or video is uploaded. Route links, QR codes and Share to LINE don’t require signing in (see the next section).
Sharing to LINE doesn’t require LINE sign-in. The App does not read LINE profiles or obtain recipient lists. LINE processes sent messages under its own privacy policy.
3. Sharing routes and syncing walls
- Accounts: sharing routes doesn’t require signing in. When you are not signed in, the App uploads shares with an anonymous account (a random user ID, no name or email), used only to prevent abuse and to count each account’s daily shares. Signing in is only for sync: when you sign in with Google, Firebase Authentication processes your Google account name, email and user ID to sync your walls.
- Device ID: the first time you open the App, it creates a random device ID on your device (no name, email or device information). It is sent along when you share a route or report a send, and is used only to count shares and sends. When you sign in and sync, it is stored under your account and kept when you switch phones.
- Sync (Google sign-in required): when you tap Sync while signed in, your wall photos, the original hold file (hold outlines computed by the App) and a wall file (name, size, thumbnail, your own hold outlines and color areas, routes) are uploaded to Climbio’s cloud storage (Firebase Storage, US region), and your wall list (names) and climbing log are stored in Firestore under your account. Only your signed-in devices can change them; they are used to sync to every device you use. When you delete a wall on any device, its list entry, photo and hold data are deleted from the cloud when you sync, and your other devices delete it when they sync.
- Sharing: when you share, the route (including the outlines and color areas of the holds it uses, and the signature on route images) is stored in Firestore together with the creator’s user ID (anonymous or Google) and device ID; the photo and its original hold file (hold outlines computed by the App, without your own edits) are stored in Climbio’s cloud storage, once per photo, and shared by the routes shared on that photo. Your own hold file is not shared. Only the account that shared a route can edit or delete it; edits update the copy on the server, and deleting a route or wall you shared from your device also deletes the public copy on the server. Photos and original hold files no shared route uses are deleted automatically. People who receive it see the same route, can add their own routes on the same wall, and can share it again in Climbio (see section 4 of the Terms of Service).
- Google sign-in gets only your account name, email and user ID. The App does not ask for access to your Google Drive or other Google data.
- Photos and hold data in the cloud can be read only by users signed in to Firebase (including the anonymous sign-in used when receiving a share). Shared routes and their photos can be seen by anyone with the link, and people who have the same photo (for example, after receiving a route on that wall) can also list all routes shared on that photo. Walls shared with a gym are listed in the App’s “Find walls” under that gym’s public walls (wall name, thumbnail and number of public routes), and anyone can take the whole wall with all its shared routes; photos the automatic check flags as possibly inappropriate are not listed.
- Shared content is used to improve hold detection: the explanation shown the first time you share lists this, and tapping Share means you agree. The routes, photos and original hold files you share may be copied and kept to evaluate and train Climbio’s hold detection and outline models. This copy is used only to improve Climbio’s hold detection, and is never sold or given to others. To have it deleted, email us (see section 5).
- 找點貓 (desktop): photos are processed on your computer and are not uploaded. A wall you publish to Find walls (photo and refined holds) counts as sharing and may likewise be used to evaluate and train hold detection; photos you do not publish never leave your computer. You can delete a published wall under “My published walls”; deleting removes the shared photo, the default holds and other people’s routes on that wall.
- Send counts: the first time you log a send or flash on a route someone else shared, the App sends that route and your device ID to our server (no sign-in needed), and the setter’s device sees how many people have sent it. Only the number is shown—not your name, account or any other record. Each device counts as one person.
- Walls you don’t share (including photos synced to your account) are never used to develop, improve or train any AI or machine-learning model, and neither is the name or email from Google sign-in.
When someone receives a share by opening the link or scanning the QR code, the App signs in to Firebase anonymously (a random user ID, no name or email) to read the shared route, then downloads the photo and original hold file from Climbio’s cloud storage (skipped if they already have that wall) and saves it as the recipient’s own copy. If the setter edits the route and shares it again, that is a new route: the recipient sees a new-route notice and it is added only if they accept it.
4. Third-party services
The App uses the following services, which handle your connection information (such as your IP address) under their own privacy policies:
- Firebase Hosting: serves the App and the outline model.
- Google Firebase (Authentication, Firestore, Storage, Cloud Functions): syncing and sharing walls and routes, cloud outline tracing. See the Google Privacy Policy.
- jsDelivr and Google’s gstatic: load libraries (detection engine, QR codes, Firebase).
- Google Fonts: loads the fonts used on route images (only font files are downloaded; the image itself is not sent anywhere).
- Route links from other sites: Climbio also accepts routes shared by sites other people host. When you open or scan such a link, the App downloads the route, photo and thumbnail directly from that site, which sees your connection information such as your IP address. Those sites are not run by us and handle it under their own policies.
We do not sell or rent any data, and we do not use it for advertising.
5. Your choices and rights
- If you don’t share or receive shares, the App connects to Firebase only for cloud outline tracing (see section 1).
- After you sign out, this device stops syncing. You can delete walls at any time (their synced photos and hold data are deleted from the cloud when you sync; routes you shared are removed from the server too), or revoke the App’s access at any time in your Google Account’s third-party access.
- For any privacy question, email us at climbio.service@gmail.com.
6. Children
The App is not directed at children under 13 and does not knowingly collect personal information from children.
7. Changes
If this policy changes, we will update this page and the effective date above.