【问题标题】:How do I get a firestore collection document from a user Id如何从用户 ID 获取 Firestore 集合文档
【发布时间】:2021-07-17 15:48:38
【问题描述】:

我是 dart/flutter/firebase 的新手,无法弄清楚如何从 firestore 获取集合数据。下面说一个无效的收集路径。

import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';

class UserProfile extends StatelessWidget {
  final String documentId = FirebaseAuth.instance.currentUser.uid;

  @override
  Widget build(BuildContext context) {
    CollectionReference users = FirebaseFirestore.instance.collection("users");

    return FutureBuilder<DocumentSnapshot>(
      future: users.doc(documentId).get(),
      builder:
          (BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
        if (snapshot.hasError) {
          return Text("Something went wrong");
        }

        if (snapshot.hasData && !snapshot.data.exists) {
          return Text("Document does not exist");
        }

        if (snapshot.connectionState == ConnectionState.done) {
          Map<String, dynamic> data = snapshot.data.data();
          return Text("Full Name: ${data['first_name']} ${data['last_name']}");
        }

        return Text("loading");
      },
    );
  }
}

【问题讨论】:

  • 打印出 documentId 并确保它不为空。否则对我来说看起来不错。接下来我要检查的是你的firebase firestore,并确保有一个集合名称'users'应该在哪里
  • 感谢亚伦的评论亚伦。是 Firestore 安全规则阻止了它。

标签: flutter google-cloud-firestore


【解决方案1】:

在这种情况下,它是不正确的 Firestore 安全规则,因此此代码是正确的。

【讨论】:

    猜你喜欢
    • 2018-04-04
    • 2019-09-24
    • 2020-12-27
    • 2021-12-16
    • 2019-09-17
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    相关资源
    最近更新 更多