【发布时间】:2020-10-25 20:39:09
【问题描述】:
我正在考虑使用 dart 和 Flutter 开发桌面应用程序,但我不知道如何将 Firebase 数据库与其集成。 任何建议将不胜感激。 提前致谢
【问题讨论】:
我正在考虑使用 dart 和 Flutter 开发桌面应用程序,但我不知道如何将 Firebase 数据库与其集成。 任何建议将不胜感激。 提前致谢
【问题讨论】:
使用 Firedart 包将 FIrebase 集成到基于桌面的 Flutter 应用程序中。
https://pub.dev/packages/firedart
文档说
这个库试图最小化依赖关系,目的是 使其能够在任何能够执行 dart 的环境中运行 代码。目前已使用 dart 运行时成功测试 (x86-64 和 arm32)以及 Flutter Android、iOS 和桌面。
【讨论】:
Handling error gRPC Error (code: 1, codeName: CANCELLED, message: Disconnecting idle stream. Timed out waiting for new targets
main FlutterFire page 有一个表格,显示了哪些 Firebase 产品在哪些环境中工作。
现在表明这些产品在 macOS 桌面应用程序中受支持:
如果您在完成其中一项工作时遇到问题,请编辑您的问题以包含 minimal information with which we can reproduce where you got stuck 以及您收到的任何错误消息。
【讨论】:
firedart 。 pub.dev/packages/firedart 在文档中,它说该包可以在任何基于 dart 的应用程序中使用。
上下文: 截至 2021 年 2 月 24 日,在 Flutter 中支持 Firebase 服务的主要项目可以在 here 找到。如果您查看 GitHub 上提出的这个问题,它会为正在查看支持桌面的“possibility”的项目提供粗略的路线图。
issue 已打开以提供对 Windows 和 Linux 的支持。
回答: 现在,将 Firebase 与您的桌面应用程序一起使用的最佳选择是 -
【讨论】:
您可以使用 Firebase C++ SDK:
【讨论】:
我使用 http 方法将 Firebase 与我的 Windows Flutter 应用程序连接起来; 代码和快照如下。 Firebase 实时数据库完美运行。 我按照这个教程 https://medium.com/flutterdevs/http-request-dcc13e885985
我的代码是:
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Flutter Demo',
theme: new ThemeData(
primarySwatch: Colors.blue,
),
home: new MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
_counter++;
});
sendData();
}
sendData() {
http.post(
Uri.parse(
"https://rest-12bb2-default-rtdb.firebaseio.com/userprofile.json"),
body: json.encode({
'firstName': "b",
'lastName': "c",
'email': "f",
}));
// setState(() {
// userProfile.add(Profile(
// firstName: firstname;
// lastName: lastname;
// email: email;
// ));
// });
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text("app"),
),
body: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Text(
'You have pushed the button this many times:',
),
new Text(
'$_counter',
style: Theme.of(context).textTheme.display1,
),
],
),
),
floatingActionButton: new FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: new Icon(Icons.add),
),
);
}
}
//////////// firebase 快照enter image description here
【讨论】: