IDを介して単一のドキュメントのデータのみを取得したい。以下のデータ例を使用した私のアプローチ:
TESTID1 {
'name': 'example',
'data': 'sample data',
}
このようなものでした:
Firestore.instance.document('TESTID1').get() => then(function(document) {
print(document('name'));
}
しかし、それは正しい構文ではないようです。
FirebaseのドキュメントはネイティブWEB、iOS、Androidなどのみに対応しており、Flutterには対応していないため、flutter(dart)内でのFirestoreのクエリに関する詳細なドキュメントを見つけることができませんでした。cloud_firestoreのドキュメントも短すぎます。複数のドキュメントをストリームにクエリする方法を示す1つの例しかありませんが、これは私がやりたいことではありません。
不足しているドキュメントの関連問題:https : //github.com/flutter/flutter/issues/14324
単一のドキュメントからデータを取得することはそれほど難しくありません。
更新:
Firestore.instance.collection('COLLECTION').document('ID')
.get().then((DocumentSnapshot) =>
print(DocumentSnapshot.data['key'].toString());
);
実行されません。
しかし、それは正しい構文ではないようです。
collection()
呼び出しがないため、正しい構文ではありません。でdocument()
直接呼び出すことはできませんFirestore.instance
。これを解決するには、次のようなものを使用する必要があります。
var document = await Firestore.instance.collection('COLLECTION_NAME').document('TESTID1');
document.get() => then(function(document) {
print(document("name"));
});
またはより簡単な方法で:
var document = await Firestore.instance.document('COLLECTION_NAME/TESTID1');
document.get() => then(function(document) {
print(document("name"));
});
リアルタイムでデータを取得したい場合は、次のコードを使用してください:
Widget build(BuildContext context) {
return new StreamBuilder(
stream: Firestore.instance.collection('COLLECTION_NAME').document('TESTID1').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return new Text("Loading");
}
var userDocument = snapshot.data;
return new Text(userDocument["name"]);
}
);
}
テキストビューに名前を設定するのにも役立ちます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加