資料儲存

2019/03/01 謝碧景(c)編製更新 

 學習目標 MIT App Inventor 2:講義 http://pics.ee/w2K繁體中文: Create apps! 

  • 學會Storage資料儲存類別中【TinyDB微型資料庫】元件的設計與應用。
  • 學會『測試性』類別中【FirebaseDB】元件的設計與應用。

一、TinyDB微型資料庫
  • App Inventor 2 提供TinyDB微型資料庫元件將資料儲存至模擬器或行動裝置內,若以模擬器或行動裝置執行程式,則會共用一個App Inventor 2 提供的共用資料庫。僅以apk實機安裝,才會為每個專案建置專屬的微型資料庫。
  • 微型資料庫元件無屬性及事件,僅有方法,如下:
 方法   說明 
清除所有資料()  會刪除所有的資料。 
清除標籤資料(標籤) 刪除指定的標籤名稱。
取得標籤資料()  會取得所有標籤名稱。  
儲存數值(標籤,儲存值)  將儲存值資料以指定的標籤名稱儲存,標籤名稱型別須為字串型別,而儲存值可為字串、數值或清單。 
取得數值(標籤,無標籤時的回傳值) 取得指定標籤名稱的資料,若找不到資料,會傳回無標籤時的回傳值所定義的字串,預設是空字串。 
《摘自: AppInventor中文學習網指令中文化Storage→TinyDB 微型資料庫


 例:我的記事本:請以微型資料庫設計一個小型記事本,摘要記錄每日重要人事物等,以提醒及便利生活事務。【重點:學會TinyDB微型資料庫】元件的設計與應用】。(檔名:TinyDB.aia)

(一)畫面編排(Designer)頁面:即版面配置。

*註:『TextBoxResult文字輸入盒』需核選v允許多行,以利輸入多行資料。


(二)程式設計(Blocks)頁面:
  • 語系→繁體中文:
(1)當輸入關鍵字後按下【查詢】按鈕,顯示垂直布局內的元件,判斷TextBoxTag文字輸入盒』指定標籤是否存在,如果標標籤名稱不存在(會傳回無標籤時的回傳值,預設為空字串),則顯示『開新檔案』訊息,並將TextBoxResult文字輸入盒』清空,以利輸入資料;否則顯示查詢到的資料。

*註:垂直布局的可見性設為『真(True)』,才會顯示其內部的『TextBoxResult文字輸入盒、及ButtonSave儲存資料按鈕』元件。


(2)輸入資料後按下【儲存資料】按鈕,並顯示
『儲存完成』訊息,同時隱藏垂直布局內的元件(『TextBoxResult文字輸入盒、及ButtonSave儲存資料按鈕』)。


  • 語系→English:


二、FirebaseDB 元件
  • Firebase資料庫2014年底被Google公司買下,納入Google Cloud平台,讓網路與行動程式間更為方便應用,有Google帳號者,即可登入Firebase建立雲端即時資料庫。
    網址: https://firebase.google.com/
  • Firebase以樹狀結構建立資料,可建立多層次資料,每筆資料以『鍵-值』(Key-Value)方式儲存,即以『鍵』名稱取得其對應的『值』。
  • 該元件在『Experimental測試性』類別中,其最大的功能是當資料庫中任何資料內容改變,則所有安裝該App程式的行動裝置都會觸發DataChanged事件,並將更新資料傳送給行動裝置
  • Firebase目前仍屬試驗階段,非正式元件,故App Inventor模擬器暫不支援,專案若使用請以FirebaseDB元件,必須在實機中執行
  • FirebaseDB元件常用屬性、方法、事件:
    • 常用屬性:
 屬性 說明
 FirebaseToken Firebase憑證,由系統自動產生,請勿修改。
 FirebaseURL Firebase資料庫網址。MIT預設一個Firebase帳號,直接讓使用者公開使用, 屬性值為『DEFAULT』或核選Use Default(即v使用預設值)即可。
 資料庫網址必須在屬性值設定,且在執行過程中不可改變資料庫網址
 ProjectBucket Firebase第1層資料標題,預設為專案名稱。
    • 常用方法:
 方法 說明
 取得數值 取得指定標籤(鍵)的資料內容。
 儲存數值 儲存資料內容給指定標籤(鍵)。
 Unauthenticate 切換Firebase資料庫帳號時清除暫存區(cache)資料。
    • 常用事件:
 事件 說明
 取得數值 使用者執行『取得數值』方法後觸發本事件,以取得資料。
 DataChanged 資料內容改變時觸發本事件。
 FirebaseError Firebase資料庫產生錯誤時觸發本事件。


 例:班訊聯絡網,班上同學間不同手機中安裝該應用程式,僅需輸入座號及按下『傳送簡訊』鈕,即可接續顯示同學之訊息互通往來,按下『清空訊息』鈕,即可清除所有訊息。

第1個手機:
 第2個手機:


(一)畫面編排(Designer)頁面:即版面配置。


(二)程式設計(Blocks)頁面:
      • 語系→繁體中文:
當按下『傳送簡訊』(ButtonSend)鈕之程式方塊,如下圖。

註:
(1)『座號』及『訊息』之文字輸入盒都需輸入資料,才能送出。
(2)設定全域變數msg儲存內容為『座號:訊息』組合後的字串。
(3)以
(3)以『取得數值』方法讀取Firebase資料庫tagmsg標籤(鍵)的資料內容。


使用者執行『取得數值』方法後會觸發『取得數值』事件,如下圖。


當訊息內容存入Firebase資料庫造成資料內容改變,所有安裝該App程式的行動裝置都會收到更新後的資料,並觸發DataChanged事件,只需將訊息內容顯示出即表示更新完成。


當按下『清空訊息』』(ButtonClear)鈕就清除tagmsg標籤的資料。


  • 語系→English: