从Flutter中的实时数据库获取特定数据值

尼尔顿·舒马赫F

我正在使用Firebase(实时数据库)进行项目。在这个项目中,我将有一个主屏幕,其中将根据用户有几个按钮。Buttons信息将存储在实时数据库中。这基本上是一个家庭自动化项目。

这是我的数据库的外观:D b

数量,表示该用户有多少个按钮。button1和button2具有按钮特性。所以我想做的是。

当用户登录时。我有一个Streambuilder,它将检查数量是否有数据。如果有,它将在For循环内运行,这将在用户屏幕中创建按钮。

我在从数据库获取特定值时遇到问题,例如,获取数量并将其存储到主屏幕中的变量中。
这就是我尝试获取数量的方式(稍后,我还将使用此代码获取其他值),但是它不起作用:

Future<int> receive_quantity() async{
    final FirebaseUser user = await _auth.currentUser();
    var snapshot = databaseReference.child(user.uid+"/buttons"+"/quantity").once();
    var result;
    await snapshot.then((value) => result = value);
    print(result);
    return result;
  }

我得到的错误:

_TypeError (type 'DataSnapshot' is not a subtype of type 'FutureOr<int>')

我的StreamBuilder:

body: StreamBuilder(
        stream: _auth.getButtonQuantity(),
        initialData: 0,
        builder: (context, snapshot) {
          if (snapshot.hasError || snapshot.hasError){
            return Container(color: Colors.red);
          }
          if (!snapshot.hasData || !snapshot.hasData){
            return Center(child: CircularProgressIndicator());
          }
          if (snapshot.hasData || snapshot.hasData){
            return GridView.count(
              padding: EdgeInsets.all(15),
              crossAxisSpacing: 20.0,
              mainAxisSpacing: 20.0,
              crossAxisCount: 3,
              children: [
                for (int i = 0; i < buttonquant; i++){
                  Button(),
                },
                GestureDetector(
                  onTap: () async{
                    _auth.receive_quantity();
                  },
                    child: Container(
                    color: Colors.black,
                    width: 150,
                    height: 150,
                    child: Icon(Icons.add, color: Colors.white,),
                    
                  ),
                ),
              ],
            );
          }
        }
      ),

我的按钮:

class Button extends StatelessWidget {
  const Button({
    Key key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: (){
        
      },
      child: Container(
        width: 150,
        height: 150,
        decoration: BoxDecoration(
          color: Colors.black,
          borderRadius: BorderRadius.circular(15)
        ),
        child: Stack(
          children: [
            Positioned(
              top: 10,
              left: 10,
              child: Icon(
                Icons.lightbulb,
                size: 35,
                color: Colors.white,
              ),
            ),
            Positioned(
              top: 95,
              left: 15,
              child: Text("Televisao", style: TextStyle(color: Colors.white),),
            ),
          ],
        ),
      ),
    );
  }
}```
莫雷兹

您需要做的是获取快照的值,而不是直接使用快照:

Future<int> receive_quantity() async{
    final FirebaseUser user = await _auth.currentUser();
    var snapshot = await databaseReference.child(user.uid+"/buttons"+"/quantity").once();
    var result = snapshot.value; //get the value here
    print(result);
    return result;
  }

通常,这就是您获得价值的方式:

databaseReference.once().then((DataSnapshot snapshot) {
    print('Data : ${snapshot.value}');
  });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获取实时数据库中的特定密钥?

来自分类Dev

从Firebase实时数据库读取特定数据

来自分类Dev

数据更改后如何从Firebase实时数据库中检索特定数据

来自分类Dev

如何在flutter中从Firebase实时数据库中获取数据?

来自分类Dev

如何从Firebase中的实时数据库获取数据

来自分类Dev

Firebase 实时数据库,从键值对中获取数据

来自分类Dev

实时数据库获取名称和值

来自分类Dev

Web中的Flutter Firebase实时数据库

来自分类Dev

在实时数据库中插入记录并获取密钥

来自分类Dev

Flutter:如何从Firebase实时数据库中获取新添加的记录?

来自分类Dev

在Flutter应用程序中从Firebase实时数据库事件获取父节点

来自分类Dev

在Firestore中检索实时数据库值

来自分类Dev

Android Firebase - 从 Firebase 实时数据库中检索特定值

来自分类Dev

Firebase,如何限制从特定数据集的检索请求(实时数据库)

来自分类Dev

实时数据库

来自分类Dev

Flutter:实时数据库,在特定的UID下附加数据

来自分类Dev

从 Cloud Functions 实时数据库中的子引用获取父节点的原始值“val()”数据

来自分类Dev

Android Firebase 实时数据库获取数据太慢

来自分类Dev

如何获取firebase实时数据库的数据

来自分类Dev

无法从 Firebase 实时数据库获取数据

来自分类Dev

从数据库中获取特定数据

来自分类Dev

从数据库中获取特定数据

来自分类Dev

从数据库中获取特定数据并打印

来自分类Dev

删除 firebase 实时数据库中的数据时,如何从列表中删除特定项目?

来自分类Dev

如何从android中的firebase实时数据库中获取数据

来自分类Dev

如何在firebase实时数据库android中的唯一键下获取特定节点

来自分类Dev

从Firebase实时数据库Flutter获取Stream <Event>的Stream <List <Object >>

来自分类Dev

Flutter实时数据库:.childOrderBy()未定义

来自分类Dev

如何从Web中的Firebase实时数据库获取数据?

Related 相关文章

  1. 1

    如何获取实时数据库中的特定密钥?

  2. 2

    从Firebase实时数据库读取特定数据

  3. 3

    数据更改后如何从Firebase实时数据库中检索特定数据

  4. 4

    如何在flutter中从Firebase实时数据库中获取数据?

  5. 5

    如何从Firebase中的实时数据库获取数据

  6. 6

    Firebase 实时数据库,从键值对中获取数据

  7. 7

    实时数据库获取名称和值

  8. 8

    Web中的Flutter Firebase实时数据库

  9. 9

    在实时数据库中插入记录并获取密钥

  10. 10

    Flutter:如何从Firebase实时数据库中获取新添加的记录?

  11. 11

    在Flutter应用程序中从Firebase实时数据库事件获取父节点

  12. 12

    在Firestore中检索实时数据库值

  13. 13

    Android Firebase - 从 Firebase 实时数据库中检索特定值

  14. 14

    Firebase,如何限制从特定数据集的检索请求(实时数据库)

  15. 15

    实时数据库

  16. 16

    Flutter:实时数据库,在特定的UID下附加数据

  17. 17

    从 Cloud Functions 实时数据库中的子引用获取父节点的原始值“val()”数据

  18. 18

    Android Firebase 实时数据库获取数据太慢

  19. 19

    如何获取firebase实时数据库的数据

  20. 20

    无法从 Firebase 实时数据库获取数据

  21. 21

    从数据库中获取特定数据

  22. 22

    从数据库中获取特定数据

  23. 23

    从数据库中获取特定数据并打印

  24. 24

    删除 firebase 实时数据库中的数据时,如何从列表中删除特定项目?

  25. 25

    如何从android中的firebase实时数据库中获取数据

  26. 26

    如何在firebase实时数据库android中的唯一键下获取特定节点

  27. 27

    从Firebase实时数据库Flutter获取Stream <Event>的Stream <List <Object >>

  28. 28

    Flutter实时数据库:.childOrderBy()未定义

  29. 29

    如何从Web中的Firebase实时数据库获取数据?

热门标签

归档