【Flutter & Firebase】用戶登入驗證 - 匿名訪客
開啟Firebase登入驗證功能
首先,在主控台的畫面中,點擊「Authentication」。

點擊畫面上的「開始使用」,並點開「Sign-in method」。

點開「電子郵件/密碼」,把第一個按鈕開啟,並按「儲存」。

也點開「匿名」,把按鈕開啟,並按「儲存」

撰寫auth.dart
在
brew_crew/lib下建立一個新資料夾services,並在其中新增auth.dart
(完成應該後會跟下圖一樣)
在
auth.dart中,先import我們之前已經安裝好的Firebase_auth Package1
import 'package:firebase_auth/firebase_auth.dart';
接著,創建一個名為
Auth的class1
2
3class Auth{
//details...
}其中,先新增一個名為
_auth的FirebaseAuth物件1
final FirebaseAuth _auth = FirebaseAuth.instance;
FirebaseAuth是Firebase Authentication SDK的起始class,而透過FirebaseAuth.instance可以新增一個FirebaseAuth物件- 在Flutter中,如果有變數、方法或物件的名稱前有
_,則代表其有效範圍只限於該dart檔中。以_auth為例,它只能使用於auth.dart中 - 在變數前加上了
final,就可以讓變數在被賦予值之後,內容就不可再做改變
接著,新增一個名為
signInAnon()的非同步函式1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20Future signInAnon() async{
// 用try&catch去抓錯誤資訊
try{
// 利用result變數去儲存回傳之用戶憑證(UserCredential)
UserCredential result = await _auth.signInAnonymously();
// 將用戶資訊儲存在user變數中
User user = result.user;
//回傳user
return user;
}catch(e){
// print出錯誤訊息
print(e.toString());
//回傳null
return null;
}
}Future、async與await用法之介紹,可以參考Dart23:異步處理signInAnonymously(): 將_auth註冊成一個匿名用戶,回傳之用戶憑證則儲存在UserCredential中,而此過程是非同步的(也就是需要用到await)UserCredential: 可以儲存用戶憑證的物件User: 可以儲存用戶帳密的物件
完整程式碼
1 | import 'package:firebase_auth/firebase_auth.dart'; |
結語
我們目前已經建立好Anonymous User(匿名用戶)的連接設定了,下次就會開始設計匿名登入介面嘍!
補充資料
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Robin's Tech Blog!


