如何在MacOS上运行Flitter项目以成功使用Firestore?
我有一个简单的颤振项目。它所做的只是连接到Firestore集合,提取一些文档并显示它们。这在iOS上运行良好。但是,当我尝试在macOS中运行它时,我无法检索文档。我没有看到任何例外,只是没有成功 与最初的默认项目相比,我唯一更改的是一种构建方法(如下),并导入如何在MacOS上运行Flitter项目以成功使用Firestore?,macos,firebase,flutter,google-cloud-firestore,Macos,Firebase,Flutter,Google Cloud Firestore,我有一个简单的颤振项目。它所做的只是连接到Firestore集合,提取一些文档并显示它们。这在iOS上运行良好。但是,当我尝试在macOS中运行它时,我无法检索文档。我没有看到任何例外,只是没有成功 与最初的默认项目相比,我唯一更改的是一种构建方法(如下),并导入“包:cloud\u firestore/cloud\u firestore.dart” 我的构建方法: @override Widget build(BuildContext context) { return Sca
“包:cloud\u firestore/cloud\u 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。这就是说,人们似乎已经能够让它工作了——例如。我还看到,也许我应该使用FirebaseCore
pod,而不是所看到的Firebase/Core
pod。当我试图手动添加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)
我的应用程序处于应用程序沙盒模式,没有适当的权限。我可以用两种不同的方法解决这个问题:
com.apple.security.network.client
权限添加到macos/Runner
下的两个权限文件(DebugProfile.authorities
和Release.authorities
)中。如果我想在应用商店中发布我的应用程序,这是首选选项
com.apple.security.App Sandbox
授权设置为false来关闭应用程序沙盒模式
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
com.apple.security.network.client
com.apple.security.network.server
调试配置文件。从我的MacOS应用程序访问Firestore的权限
我走了
<key>com.apple.security.app-sandbox</key>
<true/>
com.apple.security.app-sandbox
独自一人。此屏幕截图取自官方的扑火存储库]()但是我找不到更多的信息了吗?@chihau-谢谢你的评论!我看到了这个链接,但同样找不到我需要的信息。@Chris32-谢谢这个链接!不幸的是,这个链接的标题可能不太好-它是关于在使用mac的同时构建iOS应用程序,而不是构建macos应用程序。