[英]How to get specific data from all documents from a collection in firebase?
[英]Get all documents from a Firebase collection and set to static var Flutter
如何從firebase獲取所有文檔並將其設置為靜態var?
例子
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
FirebaseAuth auth = FirebaseAuth.instance;
FirebaseFirestore firestore = FirebaseFirestore.instance;
final officeRef = firestore.collection("office");
class CompanyData {
***static Map<String, dynamic> /id/ = {
};***
}
來自這樣的Firebase FirebaseDB
我怎樣才能得到這樣的結果(***)所以我可以將它用於另一個頁面..
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
class CompanyData {
FirebaseAuth auth = FirebaseAuth.instance;
FirebaseFirestore firestore = FirebaseFirestore.instance;
final officeRef = firestore.collection("office");
***
static Map<String, dynamic> office1 = {
'name': "OFFICE 1ST",
'code': "c_office1",
'latitude': -4.001,
'longitude': 100.001,
};
static Map<String, dynamic> office2 = {
'name': "OFFICE 2ND",
'code': "c_office2",
'latitude': -4.002,
'longitude': 100.002,
};
static Map<String, dynamic> office3 = {
'name': "OFFICE 3RD",
'code': "c_office3",
'latitude': -4.003,
'longitude': 100.003,
};
static Map<String, dynamic> etc.....
}
***
對不起,我對顫振和火力基地還是很陌生..所以還有很多我不明白的事情。
創建新文件static_variable.dart
像這樣創建 StaticVariable 類:
class StaticVariable {
static bool? navigateRedeem;
static String? keywordJob;
static User? myUser;
}
打開應用程序時請求 api,您可以在 SplashScreen 或任何您想要的地方請求 api,由您決定,
數據響應后,為StaticVariable設置新數據:
//request api here: var res = await request .....
StaticVariable.myUser = res['user]
然后,您可以在項目的任何地方調用 StaticVariable
例子:
靜態飛鏢
class StaticVariable {
static String? textHello;
}
主要.dart
import 'package:demo/static.dart';
import 'package:flutter/material.dart';
import 'home.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
StaticVariable.textHello = 'Hihihi';
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: SafeArea(
child: Scaffold(
body: HomeScreen(),
),
),
);
}
}
主頁.dart
import 'package:demo/static.dart';
import 'package:flutter/material.dart';
class HomeScreen extends StatefulWidget {
const HomeScreen({Key? key}) : super(key: key);
@override
State<HomeScreen> createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: Text(StaticVariable.textHello ?? ''),
),
);
}
}
與請求 api 類似
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.