issue # 121 的解決方法:名簿串列是不存在時, 程式應該(卻沒有)新創一個空串列再做後續 - 3dw/auto20-next GitHub Wiki
逐行解釋程式碼:
addBook: function (uid: string) {
- 定義一個名為
addBook
的方法,接收一個uid
參數,類型為string
。
this.book = this.book || [] // 解決名簿串列不存在時, 程式應該(卻沒有)新創一個空串列再做後續
- 確保
this.book
不為null
或undefined
。如果this.book
為null
或undefined
,則將其初始化為一個空陣列。
if (this.book.indexOf(uid) === -1) {
- 檢查
uid
是否已經存在於this.book
陣列中。如果不存在(即返回值為 -1),則繼續執行下一步。
this.book.push(uid)
- 將
uid
添加到this.book
陣列中。
set(ref(db, 'books/' + this.uid), this.book)
- 將更新後的
this.book
陣列存儲到 Firebase 資料庫中。使用set
方法和資料庫引用ref
,其中db
是資料庫實例,'books/' + this.uid
是存儲路徑。
總結:
這段程式碼定義了一個方法 addBook
,它接收一個用戶 ID(uid
),檢查 this.book
陣列是否已經初始化並包含該 uid
,如果沒有則將其添加到陣列中,然後將更新後的陣列存儲到 Firebase 資料庫中。