記錄一下:
App Inventor學習記錄183-多個 APP共用一個 FIREBASE專案
這次的範例的完成品如下。
這裡用一個標籤分隔上下兩部份,上半部份是下載 firebase的資料,程式一開始就會先去抓同一個 firebase專案下不同 app 用的專案名稱加到清單選擇器 1的元素中。
再從依次清單選擇器 1、2中去選擇內容,最後我們就可以看到 app用的資料標籤及標籤下的內容。
下半部份則是上傳資料到不同 app用的標籤資料中。
雖然我 firebase用的不多,但隨便數一數也一定超過 5個。
我又不想帳號切過來切過去,切到那一個專案放在那一個免費帳號下都不記得。所以我之後都是一個 firebase專案,都會放好幾個流量不大的 app資料庫。
多個 app共用一個 firebase專案的時候,它的資料會長的像這樣子。
每一個 app用的資料庫的名稱,都是加在最前面,像是 135、NO_123_button_wait、NO_126_Light_sensor等等的,都是資料庫的名稱。
這裡的重點就是它的排列方式。
然後我們再回頭看一下 firebase元件的屬性這裡。
firebase URL,這裡我們放的就是 filebase的網址。
ProjectBucket,這裡就是該 app用的資料庫的名稱,也是我們上一張圖片看到,會加到專案中,最前面的名稱。所以接下來的部份,我們都利用調整 ProjectBucket的值,就可以多個 APP,共用一個 FIREBASE專案。
畫面配置的部份如下。
有用到元件有標籤、按鈕、文字輸入盒、清單選擇器和最重要的 FIREBASE元件。
全部的程式方塊如下。
第 1部份的程式方塊記錄。
建立兩個清單來放從 FIREBASE取得的資料。
第 2部份的程式方塊記錄。
when screen 1.initialize當螢幕初初始化的時候。
先把 firebasedb 1.projectbucket的值設定成空白,這因為我們在拉一個新的 firebase元件的時候,app inventor會自動的把 firebasedb 1.projectbucket的值,設定成 app inventor專案的名稱。
假設當 firebasedb 1.projectbucket的值設定成 135的時候,我們之後用 firebase元件的方塊的時候,都會在這一格名稱下做操作,所以我們先把這個值設定成空白。
這裡我們想成 135是一個資料夾的名稱,firebasedb 1.projectbucket設定成空白的話,就是移動到最上層的資料夾裡。
然後 call firebasedb.get tag list程式。
第 3部份的程式方塊記錄。
when firebasedb1. tag list,當 firebase元件,取得標籤的時候。
如果 firebasedb.projectbuckdet的值等於空白的話,就把清單_專案清單,設定成 get value的預設參數,把清單顯示器 1、3的元件給設定一下。如果不是的話,就把就把清單_標籤清單,設定成 get value的預設參數
這裡用文字說明的挺長,也說不清楚,建議大家實際上做一下,對照著做過一次就比較清楚了。
第 4部份的程式方塊記錄。
when listpicker 1.afterpicking,當清單選擇器 1完成選擇之後。
把 firebasedb.projectbuckdet的值設定成 listpicker 1.selection清單選擇器 1的選中項。
然後再 call firebasedb1.get tag list,呼叫 firebase取得標籤程式。
由於我們會在用 firebase取得標籤程式的時候,firebasedb.projectbuckdet的值會不一樣,所以我們在上一個部份中,才會用 firebasedb.projectbuckdet的值來做判斷式。
第 5部份的程式方塊記錄。
當清單選擇器 2完成選擇之後,我們 call firebasedb1.getvalue呼叫 firebase取得標籤內容的程式。
我們在清單選擇器 1的地方已經設定過 firebasedb.projectbuckdet的值,所以接下來我們呼叫 firebase取得標籤內容程式的時候,我們就可以去取得那一個 app資料庫下的資料。
第 6部份的程式方塊記錄。
把標籤 8的文字,設定成 get value的方塊內建參數值。
第 7部份的程式方塊記錄。
按鈕按下的時候,如果文字輸入盒 1和 2都有內容的話,call listpicker 3.open,呼叫清單選擇器 3打開選擇內容。
補充一下 spinner下拉式選擇和 listpicker清單選擇器的一點點不同的地方。
如果我們把下拉式選擇的可見性設定成 false的話,呼叫下拉式選擇打開的程式,就會沒有作用。但是如果我們把清單選擇器的可見性,設定成 false的話,呼叫清單選擇器打開選擇內容的程式是會起作用。
第 8部份的程式方塊記錄。
這個部份就是 call firebasedb.store value,呼叫 firebase元件儲存資料的程式。
全部的程式方塊都簡單說明過了,建議大家試著做一次,就會用的越來越熟。
但如果不想要重新拉程式方塊,或要需要範例 aia檔的話,請前往第 2頁哦!