在使用 AppSheet 建立應用程式時,一個常見的需求是權限控管,特別是在多人協作的情境下。例如,你可能希望各分公司的同仁都能在同一個 App 中輸入資料,但每個人只能看到自己輸入的部分;而總公司的管理人員則需要能夠查看所有分公司的資料。
在 Google Sheets 新增欄位: 開啟你的 AppSheet 資料來源 (Google Sheets 試算表)。 新增一個欄位,欄位名稱可以自訂,例如「輸入者Email」。 (此步驟最關鍵!)
AppSheet 同步結構: 回到 AppSheet 編輯器。 前往 Data > Tables > 選擇你的資料表 (例如影片中的「表單回應 1」)。 點擊 View Columns。 點擊右上方的 Regenerate Structure 按鈕,並確認執行。這會讓 AppSheet 讀取到你在 Google Sheets 新增的「輸入者Email」欄位。
設定「輸入者Email」欄位屬性: 在 Columns 頁籤下,找到你剛剛同步進來的「輸入者Email」欄位。 點擊欄位名稱左邊的編輯按鈕 (鉛筆圖示)。 找到 Initial value (初始值) 或 Formula (公式) 的設定欄位 (通常在 Auto Compute 區塊下)。 在公式欄位中輸入:USEREMAIL()。 這樣設定後,每當有使用者透過 AppSheet 新增資料時,這個欄位就會自動填入該使用者的 Email。 可選: 你可以取消勾選 Show?,讓這個欄位在 App 表單或檢視中隱藏,因為使用者通常不需要看到自己的 Email。 點擊 Done 並 Save 儲存變更。
建立 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 儲存變更。
建立或修改 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 儲存變更。
保留或建立「全部資料」檢視: 確保你有一個 View (例如 AppSheet 預設產生的 "All" View),其資料來源 (For this data) 設定為原始的 Table (例如「表單回應 1」),而不是 Slice。 設定顯示條件: 在該「全部資料」View 的設定中,找到 Display > Show if 的條件欄位。 輸入公式來限制只有管理員能看到,例如: USEREMAIL() = "你的管理員Email@example.com" 或者,如果你有設定 User Roles,可以使用:USERROLE() = "Admin" 這樣一來,只有符合條件的管理員登入時,才會看到這個「全部資料」的 View。
使用者管理: 前往 Users > Share App,將需要使用 App 的人員 Email 加入,並可視需要設定其 Role (User 或 Admin)。
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。