iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
1
IoT

手拉手教自己用樹梅派、GoogleHome、GCP做一個AI智慧提醒機器人!系列 第 7

Day7 如何用tts推播(3,建立firebase)

  • 分享至 

  • xImage
  •  

今天我們將首次使用到firebase,那firebase是啥呢?
firebase本身提供許多服務:hosting、functions、firestore、realtime daatabase...。
為您的網站提供託管或部屬程式於雲端執行。

其為Firebase,Inc.在2011年發布的行動和網路應用程式開發者平台,後來被Google收購(因此若您於GCP 平台也能使用)

第一步,先於GCP平台註冊,若您是學生還有免費的額度

影片參考:https://www.youtube.com/watch?v=f90rxk7YlUU
接著我們可於firebase
https://firebase.google.com/
建立專案

接下來我們可以先建立firestore,以前firestore與realtime database放在同區域容易搞混,但最近firebase網站已經將其分開。
在其官方文件敘述:
Cloud Firestore是一種基於文檔的NoSQL數據庫。與SQL數據庫不同的是,它沒有表格或行的概念,而是將數據存儲在文檔中,將文檔組織為集合。
Cloud Firestore經過優化,可用於存儲小型文檔的大型集合。
所有文檔必須存儲在集合中。文檔可以包含子集合和嵌套對象,其中都可以包括原始細分(如字符串)或複雜對象(如列表)。

這邊我們選擇建立並使用正式版模式


由於之後會進入寫入資料,因此我們點擊進入規則頁面,改為 allow read,write :if false;

之後建立如下


再點擊左上小齒輪,專案設定=>服務帳戶

複製admin sdk 至googleHomeService.js

// const http = require('http')
const googleHome = require('google-home-push');

const config = require('./config')

const language = "zh-TW"
const accent = "zh-TW"
//---------here------------
var admin = require("firebase-admin");

var serviceAccount = require("./serviceAccountKey.json");

admin.initializeApp({
  credential: 
  databaseURL: 
});
//---------------------
const options = {
  language: language,
  accent: accent
}
const myHome = new googleHome(config.moudule[0].ip,options)
//非同步取得firestore資料並推播
async function getData(){

let data =await admin.firestore().collection("itHelp").get()
data.forEach((doc) => {
    console.log(doc.id, '=>', doc.data());
    myHome.speak(doc.data().notifyMessage); 
    console.log(doc.data().notifyMessage)
  });

}
getData()

firestore 我們即可簡單利用其進行推播


上一篇
Day6 如何用tts推播(2,ngrok及postman)
下一篇
Day8 firestore的兩三事
系列文
手拉手教自己用樹梅派、GoogleHome、GCP做一個AI智慧提醒機器人!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言