【问题标题】:Trying to show data from Firebase Firestore尝试显示来自 Firebase Firestore 的数据
【发布时间】:2021-08-02 13:06:28
【问题描述】:

我正在尝试显示我创建了 Crud 文件的 Firebase Firestore 中的数据。

我在 body.dart 文件中尝试了不同的东西,但我不断收到循环进度条和一些错误。

Accessing hidden method Lsun/misc/Unsafe;

多次

这是body.dart

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:masterpass/Screens/Passwords/components/password_list.dart';
import 'package:masterpass/Services/crud.dart';

class Body extends StatefulWidget {
  @override
  _BodyState createState() => _BodyState();
}

class _BodyState extends State<Body> {
  CrudMethods crudMethods = new CrudMethods();

  QuerySnapshot passSnapshot;

  @override
  void initState() {
    super.initState();
    crudMethods.getData().then((result) {
      passSnapshot = result;
    });
  }

  @override
  Widget build(BuildContext context) {
    return PasswordList(passSnapshot: passSnapshot);
  }
}

Password_List.dart

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:masterpass/Screens/Passwords/components/password_tile.dart';

class PasswordList extends StatelessWidget {
  const PasswordList({
    Key key,
    @required this.passSnapshot,
  }) : super(key: key);

  final QuerySnapshot<Object> passSnapshot;

  @override
  Widget build(BuildContext context) {
    return Container(
      child: passSnapshot != null
          ? Column(
              children: [
                ListView.builder(
                  itemCount: passSnapshot.docs.length,
                  shrinkWrap: true,
                  itemBuilder: (context, index) {
                    return PasswordTile(
                      username: passSnapshot.docs[index].get('username'),
                      website: passSnapshot.docs[index].get('url'),
                    );
                  },
                )
              ],
            )
          : Container(
              child: CircularProgressIndicator(),
            ),
    );
  }
}

这是 crud.dart

import 'package:cloud_firestore/cloud_firestore.dart';

class CrudMethods {
  Future<void> addData(passwordData) async {
    FirebaseFirestore.instance
        .collection("passwords")
        .add(passwordData)
        .catchError((e) {
      print(e);
    });
  }

  getData() async {
    return await FirebaseFirestore.instance.collection("passwords").get();
  }
}

为了更好地理解代码:GitHub Repo

【问题讨论】:

    标签: firebase flutter firebase-realtime-database google-cloud-firestore snapshot


    【解决方案1】:

    我发现了 2 个与您遇到的错误相关的 Github 问题,一个在 Firebase 中,一个在 Flutter 中,我认为原因是后一个问题,因此您可能需要关注该线程进行更新,因为这实际上是一个 Android 问题。

    您可以尝试在 Firebase Github 问题中提出的解决方法,即在您的 AndroidManifest.xml 文件中添加(或更改,如果您已经拥有)此标签:

    <application android:allowBackup="false">
    

    然后运行以下命令:

    flutter clean
    flutter run
    flutter create .
    

    【讨论】:

    • 你好@PranjalChaplot。这是answer your question吗?
    • @WytrzymałyWiktor 我已经尝试将 allowBackup 设置为 false,但没有成功
    • @PranjalChaplot 在这种情况下,我建议您关注 Flutter 线程,因为您遇到的问题可能是由同一问题引起的。
    猜你喜欢
    • 1970-01-01
    • 2021-07-26
    • 1970-01-01
    • 2019-12-20
    • 2019-10-12
    • 1970-01-01
    • 2020-08-15
    • 2011-11-23
    • 2021-04-04
    相关资源
    最近更新 更多