Flutter:我们如何在桌面应用程序中使用Firebase数据库

时间:2020-07-05 17:13:30

标签: firebase flutter

我当时正在考虑开发带有dart和flutter的桌面应用程序,但是我不知道如何将Firebase数据库与其集成在一起。 任何建议将不胜感激。 预先感谢

5 个答案:

答案 0 :(得分:6)

使用 Firedart 包将 FIrebase 集成到基于桌面的 Flutter 应用程序。

https://pub.dev/packages/firedart

文档说明

<块引用>

这个库试图最小化依赖,目的是 使其能够在任何能够执行 dart 的环境中运行 代码。目前已经使用dart运行时测试成功 (x86-64 和 arm32)以及 Flutter Android、iOS 和桌面。

答案 1 :(得分:3)

main FlutterFire page的表显示了哪些Firebase产品在哪种环境下工作。

现在显示macOS桌面应用程序支持这些产品:

  • Cloud Firestore
  • 云功能
  • Firebase身份验证
  • Firebase Crashlytics
  • Firebase存储

如果您在执行上述一项操作时遇到问题,请编辑问题以包括minimal information with which we can reproduce where you got stuck和收到的任何错误消息。

答案 2 :(得分:3)

上下文: 截至 2021 年 2 月 24 日,可以在 here 中找到在 Flutter 中支持 Firebase 服务的主要项目。如果您查看在 GitHub 上提出的这个问题,它为该项目提供了一个粗略的路线图,该项目着眼于支持桌面的“possibility”。

已开放 issue 以提供对 Windows 和 Linux 的支持。

答案: 目前,将 Firebase 与您的桌面应用程序结合使用的最佳选择是 -

  1. 阅读每个 firebase 服务的文档,看看它们是否支持 RESTful API 请求与服务交互。例如,Cloud Firestore 支持这一点。
  2. firedart 是为某些 Firebase 服务提供 API 的开源尝试。
  3. 等待 ("hopefully") Google 提供用 dart 原生编写的包。

答案 3 :(得分:0)

答案 4 :(得分:0)

我使用 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