次のように、FlutterアプリでGoogle Cloud Firestoreにオブジェクトを追加します。
すでに返信クラスを作成しました:
class Reply {
Reply(this.replyName, this.replyText, this.replyVotes);
final String replyName;
final String replyText;
final String replyVotes;
String getName() {
return replyName;
}
String getText() {
return replyText;
}
String getVotes() {
return replyVotes;
}
}
クラウドFirestoreに返信オブジェクトを追加するにはどうすればよいですか?
Edit:明確にするために、データ型Object
のフィールドを作成し、その中にフィールドがあります: Reply Object Image
最初に、すべてのスキーマまたはモデル、あるいはその両方を定義する単一のファイルを作成して、db構造の単一の参照ポイントを作成することを強くお勧めします。 dbSchema.Dartという名前のファイルのように:
import 'package:meta/meta.Dart';
class Replies {
final String title;
final Map coordinates;
Replies({
@required this.title,
@required this.coordinates,
});
Map<String, dynamic> toJson() =>
{
'title': title,
'coordinates': coordinates,
};
}
そして、オブジェクトにしたいフィールドをMap型にします。次に、dbに挿入するページで、dbSchema.Dartをインポートし、新しいモデルを作成します。
Replies _replyObj = new Replies(
title: _topic,
coordinates: _coordinates,
);
これは、ローカル_coordinates(または何でも)オブジェクトを定義する前に、次のようなものであると仮定しています:
_coordinates = {
'lat': '40.0000',
'lng': '110.000',
};
そして、Firestoreに挿入するには、オブジェクトのtoJsonメソッドを追加します(プレーンなDartモデルを挿入/更新することはできません):
CollectionReference dbReplies = Firestore.instance.collection('replies');
Firestore.instance.runTransaction((Transaction tx) async {
var _result = await dbReplies.add(_replyObj.toJson());
....
次のようなFirestore
トランザクションを実行できます。
Firestore.instance.runTransaction((transaction) async {
await transaction.set(Firestore.instance.collection("your_collection").document(), {
'replyName': replyName,
'replyText': replyText,
'replyVotes': replyVotes,
});
});
@ Laksh22私が理解している限り、あなたは次のようなものを意味します:
Firestore.instance.runTransaction((transaction) async {
await transaction.set(Firestore.instance.collection("your_collection").document(), {
'reply' : {
'replyName': replyName,
'replyText': replyText,
'replyVotes': replyVotes,
}
});
上記のスクリーンショットのように。