使用 Flutterfire 堆栈获取 JSON 文件
Posted
技术标签:
【中文标题】使用 Flutterfire 堆栈获取 JSON 文件【英文标题】:Getting a JSON file using flutterfire stack 【发布时间】:2021-12-02 04:29:12 【问题描述】:我正在使用带有谷歌地图标记位置的 firebase 实时数据库存储 JSON 文件。我一直在使用google maps API。但是,我无法弄清楚如何将 json 从实时数据库获取到颤振代码,特别是在本节中:
Future<Locations> getGoogleOffices() async
return Locations.fromJson(
json.decode(
// get json file
);
以前我在本地引用 JSON 文件来修复应用程序的错误。我非常感谢任何帮助和道歉,因为我是新来的 Flutter!
【问题讨论】:
【参考方案1】:一旦您设置好 Fireabse
应用程序实例:
final FirebaseApp firebaseApp = await Firebase.initializeApp(); // somewhere in your `main` starter method
Firestore 数据库
您可以按如下方式查询一个Firestore集合数据:
Future<Locations> getGoogleOffices() async
DocumentSnapshot documentSnapshot = await FirebaseFirestore.instance.collection('locations').doc('documentId').get();
return Locations.fromJson(
json.decode(
documentSnapshot.data()
);
编辑:Firebase 实时数据库
要从 Fireabse 实时数据库 而不是 Firestore 访问数据,您可以尝试以下操作:
Future<Locations> getGoogleOffices() async
final DatabaseReference db = FirebaseDatabase(app: firebaseApp).reference();
final DataSnapshot data = await db.child('locations').get();
return Locations.fromJson(
json.decode(
data!.value
);
DatabaseReference#get
API 调用将提供对此查询的最新结果的引用。
【讨论】:
嗨!感谢您的帮助,我将如何对 firebase 的实时数据库进行此查询?我找不到实时数据库的等效项。 我已经通过DataSnapshot snap = await FirebaseDatabase.instance.reference().child('locations').once();
完成了这会导致另一个错误 NoSuchMethodError (NoSuchMethodError: Class 'List 但我相信这是由另一个问题引起。
抱歉 @vernal123 没有指出 Firebase 实时数据库 的额外详细信息。我添加了 API 参考以获得完整的概述。以上是关于使用 Flutterfire 堆栈获取 JSON 文件的主要内容,如果未能解决你的问题,请参考以下文章
FlutterFire DocumentSnapshot.data() 正在返回对象?
Flutterfire Firestore中的字符串匹配查询
使用 Chef 12 从 AWS OpsWorks 中的堆栈设置获取自定义 JSON
使用 FlutterFire 的 Firebase 自定义通知