iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 20
0
Modern Web

我或許沒那麼懂 Web系列 第 20

Cloud Firestore β (12): 初始化

原本今天想要來發表個有關 API 的研究,卻發現雖然我已經有了範例程式碼,但我還沒針對怎麼初始化 App 介紹,所以今天先提及這部分吧。

首先,先從 Cloud Firestore β - 2 所講的前半部,去建立專案。接著本篇會以網頁環境和伺服器環境去分別講解如何初始化。

Web

在引用 SDK 時,可以透過兩種方式:

直接在網頁中插入 <script> 標籤去引用

<script src="https://www.gstatic.com/firebasejs/5.5.5/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.5.5/firebase-firestore.js"></script>

透過 npm 安裝

npm install firebase@5.5.5 --save

安裝後,再透過下列方式引用:

import firebase from 'firebase/app'
import 'firebase/firestore'

最後,初始化:

firebase.initializeApp({
  // 以下資料請到專案設定中取得
  apiKey: '### FIREBASE API KEY ###',
  authDomain: '### FIREBASE AUTH DOMAIN ###',
  projectId: '### CLOUD FIRESTORE PROJECT ID ###'
})

let db = firebase.firestore()

// 停用 deprecated features
db.settings({
  timestampsInSnapshots: true
})

我們也可以寫成類似這樣的 JS 檔,讓其他 JS 檔直接復用:

// db.js
import firebase from 'firebase'
import 'firebase/firestore'

firebase.initializeApp({
  apiKey: '### FIREBASE API KEY ###',
  authDomain: '### FIREBASE AUTH DOMAIN ###',
  projectId: '### CLOUD FIRESTORE PROJECT ID ###'
})

firebase.firestore().settings({
  timestampsInSnapshots: true 
})

export const db = firebase.firestore()
// xxx.js
import { db } from './db'

let citiesRef = db.collection('cities')

伺服器環境

這邊以 Node.js 和 Ruby 作為示範。

授權

首先我們要拿到授權文件,所以先到 Google Cloud Platform 的 Create service account key 頁面。

在該頁面的表單中,Service account 的下拉式選單中選擇 New service account。之後再於 Service account name 中填寫用來識別的帳戶名稱,Role 則選擇 Project > Owner。

填完上述資料後,點選 Download,即會拿到儲存一把金鑰與相關資訊的 JSON 文件。

之後再於想要跑腳本的環境中,透過環境變數 GOOGLE_APPLICATION_CREDENTIALS 設定這個文件所在的位置即可。

初始化:Node.js

先透過 npm 安裝套件:

npm install --save @google-cloud/firestore

或是使用 yarn:

yarn add @google-cloud/firestore

然後在文件中引用並初始化:

import Firestore from '@google-cloud/firestore'

const db = new Firestore({
  projectId: 'YOUR_PROJECT_ID'
});

初始化:Ruby

安裝相關的 Gem:

# Gemfile
gem 'google-cloud-firestore'
require 'google/cloud/firestore'

firestore = Google::Cloud::Firestore.new(project_id: project_id)

上一篇
Cloud Firestore β (11): 基礎查詢
下一篇
Cloud Firestore β (13): API 研究
系列文
我或許沒那麼懂 Web31

1 則留言

0
若虛
iT邦新手 5 級 ‧ 2018-11-05 22:03:27

2018-11-05 22:02:
修正標題編號,從 13 改成 12。

我要留言

立即登入留言