在 Flutter Web 和移动应用中使用 Firebase

Posted

技术标签:

【中文标题】在 Flutter Web 和移动应用中使用 Firebase【英文标题】:Use Firebase in both Flutter web AND mobile app 【发布时间】:2020-03-21 18:39:05 【问题描述】:

我正在开发一个 Flutter 应用程序,该应用程序同时编译为网页版和移动版。在我决定使用 Firebase 之前,一切都很顺利。

我发现有许多库允许在 Flutter 中使用 Firebase,用于移动应用程序。我还找到了一个允许在 Flutter Web 应用中使用 Firebase 的库。

问题是:Web 版本的 Firebase 插件使用 "dart:html",Flutter 应用的移动版本不支持该插件。另一方面,网络版本不支持移动库,我在网络应用程序中使用它们时总是得到PlatformException

所以这是我的问题:有谁知道 Flutter 的 Firebase 库,它适用于移动版和网页版,所以我只需要在我想要的平台上编译,而无需更改之前的代码?

编辑: 我知道有一种方法可以为 androidios 版本编写特定代码,但我找不到任何为 Web 版本编写特定代码的线索。这应该是解决问题的另一种方法...

有什么想法吗?

【问题讨论】:

【参考方案1】:

目前没有一个 Flutter+Firebase 库可以同时适用于 Web 和移动应用程序,因此您需要使用两个(不兼容的)库。

正在努力纠正这种情况,但没有发布时间表。

另见:

这个Github issue关于兼容性 How to use cloud_firestore in flutter for web and android?

【讨论】:

感谢您的回答。今天试试这个,但它似乎是我想要的。【参考方案2】:

您使用的是什么 firebase 插件?因为只有有限的firebase插件可以在网络上使用,包括firebase_analyticsfirebase_authcloud_firestorecloud_functionsfirebase_messagingfirebase_storagefirebase_core

如果您使用的是除这些之外的任何 firebase 插件,那么它们不支持网络

【讨论】:

以上是关于在 Flutter Web 和移动应用中使用 Firebase的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:在浏览器中运行网页版时如何停止显示移动应用

Flutter 中用于 Web、移动和桌面应用程序的视频播放器?

无法分别构建 Flutter Web 和 Flutter Mobile 应用

Flutter 调味移动应用和 Flutter web

是否可以在 Flutter 中动态激活包? (根据网页构建,移动构建)

如何在 Flutter Web 中渲染 SVG?