首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取Firebase集合中的所有文档,并将其设置为static

获取Firebase集合中的所有文档,并将其设置为static
EN

Stack Overflow用户
提问于 2022-05-21 06:32:07
回答 1查看 46关注 0票数 0

如何从firebase获取所有文档并将其设置为静态var?

示例

代码语言:javascript
复制
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/ = {
  };***
}

从像这个FirebaseDB这样的火柴基地

我怎样才能得到这样的结果(*),这样我就可以把它用在另一页上。

代码语言:javascript
复制
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.....
}
***

不好意思,我还是很新鲜的。还有很多事情我不明白。

EN

回答 1

Stack Overflow用户

发布于 2022-05-21 10:25:30

创建新文件static_variable.dart创建StaticVariable类如下所示:

代码语言:javascript
复制
class StaticVariable {
  static bool? navigateRedeem;
  static String? keywordJob;
  static User? myUser;
}

请求api在打开应用程序时,您可以在SplashScreen或任何您想要的地方请求api,这取决于您,

在数据响应之后,为StaticVariable设置新数据:

代码语言:javascript
复制
//request api here: var res = await request .....
StaticVariable.myUser = res['user]

然后,您可以在项目中的任何地方调用StaticVariable。

示例:

static.dart

代码语言:javascript
复制
class StaticVariable {
  static String? textHello;
}

main.dart

代码语言:javascript
复制
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(),
        ),
      ),
    );
  }
}

home.dart

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72327233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档