我有一个简单的 Flutter 项目。它所做的只是连接到 Firestore 集合、提取一些文档并显示它们。这在 iOS 上运行良好。但是,当我尝试在 macOS 中运行它时,我无法检索文档。我没有看到任何例外,只是没有成功。
我从最初的默认项目中唯一改变的是构建方法之一(如下),并导入'package:cloud_firestore/cloud_firestore.dart'
.
我的构建方法:
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: StreamBuilder(
stream: Firestore.instance.collection('mycollection').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) return const Text('Loading');
return ListView.builder(
itemExtent: 80,
itemCount: snapshot.data.documents.length,
itemBuilder: (context, index) => ListTile(
title: Row(
children: [
Expanded(
child:
Text(snapshot.data.documents[index].data['title']),
)
],
)));
},
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: Icon(Icons.add),
), // This trailing comma makes auto-formatting nicer for build methods.
);
}
通过阅读,Firebase 似乎并不完全支持 macOS。也就是说,人们似乎已经能够让它发挥作用——例如,Swift macOS Firebase https://stackoverflow.com/questions/59805273/swift-macos-firebase。我还看到也许我应该使用FirebaseCore
吊舱而不是Firebase/Core
所见吊舱here https://github.com/firebase/firebase-ios-sdk/issues/1757。当我尝试手动添加FirebaseCore
pod,看来我还有Firebase/Core
pod,我不明白如何pubspec/pods
机制还不足以将其拉出来。
更多背景:
▶ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, 1.21.0-1.0.pre, on Mac OS X 10.15.5 19F101, locale en-US)
[✗] Android toolchain - develop for Android devices
✗ Unable to locate Android SDK.
Install Android Studio from: https://developer.android.com/studio/index.html
On first launch it will assist you in installing the Android SDK components.
(or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions).
If the Android SDK has been installed to a custom location, set ANDROID_SDK_ROOT to that location.
You may also want to add it to your PATH environment variable.
[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
[✓] Chrome - develop for the web
[!] Android Studio (not installed)
[✓] VS Code (version 1.47.0)
[✓] Connected device (4 available)