2025年4月16日 星期三

AppSheet 教學:如何設定讓使用者只能看到自己輸入的資料?

在使用 AppSheet 建立應用程式時,一個常見的需求是權限控管,特別是在多人協作的情境下。例如,你可能希望各分公司的同仁都能在同一個 App 中輸入資料,但每個人只能看到自己輸入的部分;而總公司的管理人員則需要能夠查看所有分公司的資料。

AppSheet 提供了強大的權限設定功能,可以透過使用者的 Email 來達成這個目標。本篇教學將說明如何設定,讓每個登入的使用者只能看到與自己 Email 相關的資料記錄。

核心概念:

利用 AppSheet 內建的 USEREMAIL() 函數抓取目前登入者的 Email,並將其與資料表中記錄的「輸入者 Email」欄位進行比對,藉此篩選出該使用者能看到的資料。

事前準備:

你的資料來源(例如 Google Sheets 試算表)中,必須要有一個欄位是用來記錄該筆資料是由哪位使用者輸入的 Email。

❗ 重要提醒: 如果你的原始試算表中沒有這個「輸入者 Email」欄位,請務必先在 Google Sheets 中手動新增此欄位,然後再回到 AppSheet 編輯器中「同步結構 (Regenerate Structure)」。請勿直接在 AppSheet 的欄位設定 (Columns) 中新增,否則 AppSheet 無法將 Email 正確寫回試算表,會導致後續篩選失敗。(這是許多初學者卡關的地方!)

設定步驟:

  1. 在 Google Sheets 新增欄位:

    • 開啟你的 AppSheet 資料來源 (Google Sheets 試算表)。

    • 新增一個欄位,欄位名稱可以自訂,例如「輸入者Email」。

    • (此步驟最關鍵!)

  2. AppSheet 同步結構:

    • 回到 AppSheet 編輯器。

    • 前往 Data > Tables > 選擇你的資料表 (例如影片中的「表單回應 1」)。

    • 點擊 View Columns

    • 點擊右上方的 Regenerate Structure 按鈕,並確認執行。這會讓 AppSheet 讀取到你在 Google Sheets 新增的「輸入者Email」欄位。

  3. 設定「輸入者Email」欄位屬性:

    • 在 Columns 頁籤下,找到你剛剛同步進來的「輸入者Email」欄位。

    • 點擊欄位名稱左邊的編輯按鈕 (鉛筆圖示)。

    • 找到 Initial value (初始值) 或 Formula (公式) 的設定欄位 (通常在 Auto Compute 區塊下)。

    • 在公式欄位中輸入:USEREMAIL()

    • 這樣設定後,每當有使用者透過 AppSheet 新增資料時,這個欄位就會自動填入該使用者的 Email。

    • 可選: 你可以取消勾選 Show?,讓這個欄位在 App 表單或檢視中隱藏,因為使用者通常不需要看到自己的 Email。

    • 點擊 Done 並 Save 儲存變更。

  4. 建立 Slice (資料切片) 篩選個人資料:

    • 前往 Data > Slices

    • 點擊 New Slice

    • Slice Name: 輸入一個容易辨識的名稱,例如「查看個人資料」。

    • Source Table: 選擇你的主要資料表 (例如「表單回應 1」)。

    • Row filter condition: 這是篩選的核心。點擊右邊的燒瓶圖示,輸入公式: [輸入者Email] = USEREMAIL()

      • [輸入者Email] 是指你在步驟 1 新增並在步驟 3 設定的那個欄位名稱。

      • 這個條件的意思是:只顯示「輸入者Email」欄位的值等於目前登入使用者 Email 的那些資料列。

    • Slice Actions: 根據需求設定此 Slice 資料的操作權限 (例如:Update, Add, Delete)。

    • Update Mode: 根據需求設定更新模式。

    • 點擊 Save 儲存變更。

  5. 建立或修改 View (檢視) 來顯示個人資料:

    • 前往 UX > Views

    • 你可以點擊 New View 建立一個新的檢視,或者修改現有的檢視 (例如原本顯示所有資料的檢視)。

    • View name: 輸入檢視名稱,例如「我的紀錄」或「查看個人資料」。

    • For this data: (此步驟重要!) 將資料來源從原本的 Table (例如「表單回應 1」) 改為 你在步驟 4 建立的 Slice (例如「查看個人資料 (slice)」)。

    • View type: 選擇你想要的呈現方式 (Table, Card, Deck 等)。

    • Position: 設定此檢視在 App 中的位置 (例如 menu 或 primary navigation)。

    • 點擊 Save 儲存變更。

完成! 經過以上設定,當一般使用者登入 App 時,他們在「我的紀錄」這個 View 中就只會看到自己輸入的資料了。

補充:如何設定管理員檢視 (查看全部資料)?

如果你需要一個只有管理員能看到的、包含所有資料的檢視:

  1. 保留或建立「全部資料」檢視: 確保你有一個 View (例如 AppSheet 預設產生的 "All" View),其資料來源 (For this data) 設定為原始的 Table (例如「表單回應 1」),而不是 Slice。

  2. 設定顯示條件:

    • 在該「全部資料」View 的設定中,找到 Display > Show if 的條件欄位。

    • 輸入公式來限制只有管理員能看到,例如: USEREMAIL() = "你的管理員Email@example.com"

    • 或者,如果你有設定 User Roles,可以使用:USERROLE() = "Admin"

    • 這樣一來,只有符合條件的管理員登入時,才會看到這個「全部資料」的 View。

  3. 使用者管理: 前往 Users > Share App,將需要使用 App 的人員 Email 加入,並可視需要設定其 Role (User 或 Admin)。

透過以上步驟,你就能有效地在 AppSheet 中區分使用者權限,讓一般使用者僅能存取自己的資料,同時保留管理員查看全局資料的能力。



沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。

【Excel 教學】如何使用 Power Query 快速比對兩份資料的差異?找出新增、刪除與共同項目

在日常的辦公室工作中,我們經常需要比對兩份清單的差異,例如:比較這個月和上個月的訂單清單、核對自己與廠商的帳目、或是找出兩份客戶名單的增減。傳統方法不僅耗時,還容易出錯。 今天,我們要介紹如何使用 Excel 內建的強大工具  Power Query ,只需要設定一次,未來就能一...