issue # 121 的解決方法:名簿串列是不存在時, 程式應該(卻沒有)新創一個空串列再做後續 - 3dw/auto20-next GitHub Wiki

逐行解釋程式碼:

addBook: function (uid: string) {
  • 定義一個名為 addBook 的方法,接收一個 uid 參數,類型為 string
  this.book = this.book || []    // 解決名簿串列不存在時, 程式應該(卻沒有)新創一個空串列再做後續
  • 確保 this.book 不為 nullundefined。如果 this.booknullundefined,則將其初始化為一個空陣列。
  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 資料庫中。