简体   繁体   English

Flutter DocumentSnapshot

[英]Flutter DocumentSnapshot

I am trying to get the data from a DocumentSnapshot from firebase. 我正在尝试从Firebase的DocumentSnapshot获取数据。

Firestore.instance.collection('products').document("Lucius_Malfoys_Zauberstab").get().then((DocumentSnapshot ds) {
          print(ds.exists);
        });

This method works totally fine and returns true, but: 此方法可以正常工作并返回true,但是:

      var keys =  ["Lucius_Malfoys_Zauberstab"];


     String id =  keys[0];
     print(id); ---> prints Lucius_Malfoys_Zauberstab


     Firestore.instance.collection('products').document(id).get().then((DocumentSnapshot ds) {
      print(ds.exists);
      });

returns false... 返回假...

Does anyone have an idea, why this is the case? 有谁知道,为什么会这样? It is just a small problem in my application, but I am curious why this happens. 这只是我的应用程序中的一个小问题,但我很好奇为什么会发生这种情况。 Just for understanding. 只是为了理解。 Thank you! 谢谢!

EDIT: 编辑:

Here is a screenshot of the cart collection: 这是购物车集合的屏幕截图:

在此处输入图片说明

Here is a screenshot of the products collection: 这是产品集合的屏幕截图:

在此处输入图片说明

I can't reproduce the problem. 我无法重现该问题。 The best I can do at this point is show you what I've done: 此时,我能做的最好的事情就是向您展示我所做的事情:

在此处输入图片说明

The first print of false is before I had the document. false的第一张印刷品是在我拿到文件之前。 I then created the document, ran _test again, and it printed true . 然后,我创建了文档,再次运行_test ,并将其打印为true

If I remove my permission on /55652643/{document} , the print statement isn't reached, and instead I get a stack trace that permission has been denied. 如果我删除了对/55652643/{document}许可,则不会达到print语句,而是得到了堆栈跟踪,表明该许可已被拒绝。

flutter:类型'(文档快照<myobject> ) =&gt; MyObject' 不是类型 '(DocumentSnapshot<object> ) =&gt; 我的对象'<div id="text_translate"><p> 我很难从 firebase DB 读取(和显示)数据。 我收到此警告:类型 '(DocumentSnapshot) =&gt; GivitUser' 不是类型 '(DocumentSnapshot) =&gt; GivitUser' 的子类型</p><p>我真的不知道我做错了什么,我试图从 DocumentSnapshot 转换为 DocumentSnapshot 但没有成功。 这是我的数据库。dart 文件:</p><pre> import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:flutter/material.dart'; import 'package:givit_app/models/givit_user.dart'; class DatabaseService { final String uid; DatabaseService({@required this.uid}); final CollectionReference userCollection = FirebaseFirestore.instance.collection('Users'); Future&lt;void&gt; updateGivitUserData( String email, String fullName, String password, int phoneNumber) async { return await userCollection.doc(uid).set({ 'Email': email, 'Full Name': fullName, 'Password': password, 'Phone Number': phoneNumber, }); } Future&lt;GivitUser&gt; getGivitUser(String uid) async { return await userCollection.doc(uid).get().then((user) =&gt; user.data()); } GivitUser _userDataFromSnapshot(DocumentSnapshot&lt;GivitUser&gt; snapshot) { return GivitUser( uid: uid, email: snapshot.data().email, fullName: snapshot.data().fullName, phoneNumber: snapshot.data().phoneNumber, ); } Stream&lt;GivitUser&gt; get userData { return userCollection.doc(uid).snapshots().map(_userDataFromSnapshot); } }</pre><p> 这是我尝试使用 database.dart 文件并显示数据的地方:</p><pre> Widget build(BuildContext context) { GivitUser user = Provider.of&lt;GivitUser&gt;(context); final DatabaseService db = DatabaseService(uid: user.uid); return StreamBuilder&lt;GivitUser&gt;( stream: db.userData, builder: (context, snapshot) { if (.snapshot;hasData) { return Loading(); } print('after getter'). print(snapshot;data). GivitUser givitUser = snapshot;data. return Scaffold(.... .... ....</pre><p> 在此先感谢,我将不胜感激:)</p><p> 编辑:错误截图: <a href="https://i.stack.imgur.com/g7zGN.png" rel="nofollow noreferrer">ERROR SCREENSHOT</a></p></div></object></myobject> - flutter: type '(DocumentSnapshot<MyObject>) => MyObject' is not a subtype of type '(DocumentSnapshot<Object>) => MyObject'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在 DocumentSnapshot 中 Flutter 没有方法 `get` - Flutter No Method `get` in DocumentSnapshot Flutter Firestore 文档快照到 Map - Flutter Firestore documentsnapshot to Map flutter:类型'(文档快照<myobject> ) =&gt; MyObject' 不是类型 '(DocumentSnapshot<object> ) =&gt; 我的对象'<div id="text_translate"><p> 我很难从 firebase DB 读取(和显示)数据。 我收到此警告:类型 '(DocumentSnapshot) =&gt; GivitUser' 不是类型 '(DocumentSnapshot) =&gt; GivitUser' 的子类型</p><p>我真的不知道我做错了什么,我试图从 DocumentSnapshot 转换为 DocumentSnapshot 但没有成功。 这是我的数据库。dart 文件:</p><pre> import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:flutter/material.dart'; import 'package:givit_app/models/givit_user.dart'; class DatabaseService { final String uid; DatabaseService({@required this.uid}); final CollectionReference userCollection = FirebaseFirestore.instance.collection('Users'); Future&lt;void&gt; updateGivitUserData( String email, String fullName, String password, int phoneNumber) async { return await userCollection.doc(uid).set({ 'Email': email, 'Full Name': fullName, 'Password': password, 'Phone Number': phoneNumber, }); } Future&lt;GivitUser&gt; getGivitUser(String uid) async { return await userCollection.doc(uid).get().then((user) =&gt; user.data()); } GivitUser _userDataFromSnapshot(DocumentSnapshot&lt;GivitUser&gt; snapshot) { return GivitUser( uid: uid, email: snapshot.data().email, fullName: snapshot.data().fullName, phoneNumber: snapshot.data().phoneNumber, ); } Stream&lt;GivitUser&gt; get userData { return userCollection.doc(uid).snapshots().map(_userDataFromSnapshot); } }</pre><p> 这是我尝试使用 database.dart 文件并显示数据的地方:</p><pre> Widget build(BuildContext context) { GivitUser user = Provider.of&lt;GivitUser&gt;(context); final DatabaseService db = DatabaseService(uid: user.uid); return StreamBuilder&lt;GivitUser&gt;( stream: db.userData, builder: (context, snapshot) { if (.snapshot;hasData) { return Loading(); } print('after getter'). print(snapshot;data). GivitUser givitUser = snapshot;data. return Scaffold(.... .... ....</pre><p> 在此先感谢,我将不胜感激:)</p><p> 编辑:错误截图: <a href="https://i.stack.imgur.com/g7zGN.png" rel="nofollow noreferrer">ERROR SCREENSHOT</a></p></div></object></myobject> - flutter: type '(DocumentSnapshot<MyObject>) => MyObject' is not a subtype of type '(DocumentSnapshot<Object>) => MyObject' 等待 Future 的结果<DocumentSnapshot>在 Flutter Firestore 中 - Waiting for result of Future<DocumentSnapshot> in Flutter Firestore Firebase 文档快照 map 到 Json Flutter 中的 object - Firebase Documentsnapshot map to Json object in Flutter 颤振列表 <DocumentSnapshot> 没有得到所有的价值 - Flutter List<DocumentSnapshot> not getting all values Flutter - Class 'DocumentSnapshot' 没有实例 getter 'docs' - Flutter - Class 'DocumentSnapshot' has no instance getter 'docs' Flutter 如何将 id 添加到 firebase 文档快照 - Flutter how to add id to firebase documentsnapshot containsValue() 不适用于 Flutter 中 Firebase 的 DocumentSnapshot - containsValue() not working with DocumentSnapshot from Firebase in Flutter Flutter NoSuchMethodError 被抛出构建 FutureBuilder<documentsnapshot></documentsnapshot> - Flutter NoSuchMethodError was thrown building FutureBuilder<DocumentSnapshot>
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM