簡體   English   中英

Flutter:我們如何在桌面應用程序中使用 Firebase 數據庫

[英]Flutter:How can we use Firebase database with desktop application

我正在考慮使用 dart 和 flutter 開發桌面應用程序,但我不知道如何將 Firebase 數據庫與其集成。 任何建議將不勝感激。 提前致謝

使用Firedart package 將 FIrebase 集成到基於桌面的 Flutter 應用程序。

https://pub.dev/packages/firedart

文檔說

該庫試圖最小化依賴關系,以使其能夠在任何能夠執行 dart 代碼的環境中運行。 Currently it has been successfully tested using the dart runtime (x86-64 and arm32) as well as on Flutter Android, iOS and Desktop.

FlutterFire 主頁面有一個表格,顯示了 Firebase 產品在哪個環境中工作。

現在這表明 macOS 桌面應用程序支持這些產品:

  • 雲防火牆
  • 雲函數
  • Firebase 認證
  • Firebase Crashlytics
  • Firebase 存儲

如果您在其中一項工作時遇到問題,請編輯您的問題以包含我們可以重現您遇到的問題的最少信息以及您收到的任何錯誤消息。

上下文:截至 2021 年 2 月 24 日,在 Flutter 中支持 firebase 服務的主要項目可以在這里找到。 如果您查看在 GitHub 上提出的這個問題,它為正在研究支持桌面的“可能性”的項目提供了一個粗略的路線圖。

已打開一個問題以提供對 Windows 和 Linux 的支持。

答:現在,將 Firebase 與您的桌面應用程序一起使用的最佳選擇是 -

  1. 閱讀每個 firebase 服務的文檔,看看它們是否支持 RESTful API 請求以與服務交互。 例如Cloud Firestore支持這一點。
  2. fireart是為某些 Firebase 服務提供 API 的開源嘗試。
  3. 等待(“希望”)谷歌提供一個用 dart 原生編寫的 package。

我使用 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 快照在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM