iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0
Mobile Development

好好用的 flutter 套件系列 第 27

好好用的 flutter 套件 - Day 27 firebase_remote_config

  • 分享至 

  • xImage
  •  

需求

想要有一個遠端變數來決定app 的一些變化,那就是 Firebase Remote Config 啦!!

Firebase Remote Config - Readme

Firebase 控制台 - Remote Config

先來啟用 Remote Config 服務 ,設定 key名稱為 "ithome" , 值為 字串 "day30_kotlin" ,
記得要按發表鍵哦

建立第一個參數,後按儲存
https://ithelp.ithome.com.tw/upload/images/20231011/20121643Jkb4JPJ2M5.png

參數建立完成,就要按發布變更
https://ithelp.ithome.com.tw/upload/images/20231011/201216434xjYd2Zyfw.png

發布變更視窗
https://ithelp.ithome.com.tw/upload/images/20231011/201216432hXOJQ2gQ5.png

發布完成
https://ithelp.ithome.com.tw/upload/images/20231011/20121643AE0zVG2xvJ.png

Firebase Remote Config - Install

直接在 pubspec.yaml 加上 firebase_remote_config: ^4.2.7,然後pub get
dependencies:
 firebase_remote_config: ^4.2.7

https://ithelp.ithome.com.tw/upload/images/20231011/20121643Url0AKKzno.png

Firebase Remote Config - Example

在 /lib/main.dart 加入 程式
import 'package:firebase_remote_config/firebase_remote_config.dart';
宣告和初始化

late final FirebaseRemoteConfig remoteConfig;
Future<void> firebaseRemocfg() async {
   WidgetsFlutterBinding.ensureInitialized();
   app = await Firebase.initializeApp(
     options: DefaultFirebaseOptions.currentPlatform,
   );
   remoteConfig = FirebaseRemoteConfig.instanceFor(app: app);
   _showToast(remoteConfig.toString());
}

Future<void> firebase_remote() async {
   try {
     // Using zero duration to force fetching from remote server.
     await remoteConfig.setConfigSettings(
       RemoteConfigSettings(
         fetchTimeout: const Duration(seconds: 10),
         minimumFetchInterval: Duration.zero,
       ),
     );
     await remoteConfig.fetchAndActivate();
     _showToast('Fetched: ${remoteConfig.getString('ithome')}');
   } on PlatformException catch (exception) {
     // Fetch exception.
     print(exception);
     _showToast('Exception: $exception');
   } catch (exception) {
     print(exception);
     _showToast('Exception: $exception');
   }
 }
 
void initState() {
    FirebaseRemoteConfig();
}
 Future<void> firebase_remote() async {
   try {
     // Using zero duration to force fetching from remote server.
     await remoteConfig.setConfigSettings(
       RemoteConfigSettings(
         fetchTimeout: const Duration(seconds: 10),
         minimumFetchInterval: Duration.zero,
       ),
     );
     await remoteConfig.fetchAndActivate();
     _showToast('Fetched: ${remoteConfig.getString('ithome')}');
   } on PlatformException catch (exception) {
     // Fetch exception.
     print(exception);
     _showToast('Exception: $exception');
   } catch (exception) {
     print(exception);
     _showToast('Exception: $exception');
   }
 }

       ElevatedButton(
         onPressed: firebase_remote,
         child: const Text('Day27 Firebase Remote Config'),
       ),

執行結果

https://ithelp.ithome.com.tw/upload/images/20231011/20121643zVx9DlLnr7.png

按下按鍵,就得到遠端值"day30_kotlin"
https://ithelp.ithome.com.tw/upload/images/20231011/20121643BMbsyKOKPt.png

心得

firebase_remote_config 用起來真的簡單方便,這裏只有用簡單的字方式,
還有數字、布林和json的方式大家可以去用哦!!

參考

https://firebase.flutter.dev/docs/remote-config/overview


上一篇
好好用的 flutter 套件 - Day 26 firebase_auth
下一篇
好好用的 flutter 套件 - Day 28 firebase_analytics
系列文
好好用的 flutter 套件30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言