是否有可能在 Flutter 中动态初始化 Firebase?

2024-03-30

我尝试根据用户语言偏好来初始化 Firebase。 例如:

用户打开应用程序。 选择语言A:Flutter应该初始化项目A(配置等)。 当用户选择不同的语言时也是如此。

问题是 iOS 需要有默认的 GoogleService-Info.plist 文件。 在 Firebase 的动态初始化过程中,会创建一个应用程序,但默认应用程序来自默认文件,并且优先级高于项目 A。最终,创建了两个应用程序(DEFAULT 和 A)。这会导致 FirebaseMessaging 被分配给默认 Firebase 应用,而不是根据用户首选项分配给第二个应用。

根据消息传递.dart docs:

  /// If [app] is not provided, the default Firebase app will be used.
  // TODO: messaging does not yet support multiple Firebase Apps. Default app only.

在这种情况下,不可能支持 Firebase 配置文件的动态初始化,因为总会有一个从默认配置文件启动的默认应用程序。

在本机应用程序中,我可以创建许多 .plist 文件并调用FirebaseApp.configure(options: options)

您知道如何在 Flutter 中解决这个问题吗?


您在使用 FirebaseMessaging 时遇到的问题是由于 firebase_messaging 包尚不支持 .instanceFor() 造成的。否则,默认应用程序的存在不会成为问题,但默认应用程序被硬编码为 FirebaseMessaging 中唯一受支持的应用程序。

FirebaseAuth、FirebaseFirestore 和 FirebaseStorage 包中已添加对 .instanceFor() 的支持。如果 Firebase 消息传递 支持instanceFor(),您可以简单地传入辅助应用程序名称并使用该方法引用它。相反,该软件包中缺乏支持增加了不必要的复杂性。有关实例的更多信息,请参见此处:https://firebase.flutter.dev/docs/core/usage/#secondary-firebase-apps https://firebase.flutter.dev/docs/core/usage/#secondary-firebase-apps.

有关 fcm 缺乏多应用程序支持的更多信息可以在此处找到:https://github.com/FirebaseExtended/flutterfire/issues/5844 https://github.com/FirebaseExtended/flutterfire/issues/5844。其中提到了一种可能的解决方法(我个人没有尝试过),并且还有一个公开的 PRhttps://github.com/FirebaseExtended/flutterfire/pull/6549 https://github.com/FirebaseExtended/flutterfire/pull/6549目前仍处于草案阶段。

您也许能够使用风味来完成所需的功能,但我对它们不够熟悉,无法在该主题上提供帮助:https://flutter.dev/docs/deployment/flavors https://flutter.dev/docs/deployment/flavors.

我处于同样的情况,选择将所有应用程序用户订阅到默认应用程序实例,然后代表我的默认项目通过 firebase 云函数执行所有 fcm 调度,直到 firebase_messaging 包团队修复了其实现中的这个明显漏洞。

如果您有能力将所有数据包含在一个项目中,按语言集合组织并按规则隔离,您可能也需要考虑该选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有可能在 Flutter 中动态初始化 Firebase? 的相关文章

  • SQLite支持android的数据类型有哪些

    谁能告诉我 SQLITE 中支持 ANDROID 的数据类型列表 我想确认 TIME 和 DATE 数据类型 这里有一个list http www sqlite org datatype3 htmlSQLite 的数据类型 支持时间和日期间
  • 以弯曲格式显示文本

    我正在寻找以曲线格式绘制一些文本 我使用哪个控件并不重要 UITextField UILabel or UITextView 我只想显示如图所示的文本 仍在寻找解决方案 请帮忙 查看此链接 https nodeload github com
  • 获取可以共享数据的应用程序列表

    此代码显示默认共享对话框 Intent sharingIntent new Intent Intent ACTION SEND sharingIntent setType text html sharingIntent putExtra a
  • Cordova 在 iOS 中显示警告“线程警告:[您的函数]花了 [n] 毫秒”

    THREAD WARNING Console took 81 661865 ms Plugin should use a background thread 在跑步的时候iOS 手机差距项目 对于一些剩余的插件 例如地理位置和文件系统 也是
  • window.onbeforeunload 在 Android Chrome 上不会触发 [alt.解决方案?]

    我开发了一个简单的聊天应用程序 我正在使用 window onbeforeunload当有人关闭选项卡 浏览器时 基本上是当用户离开房间时 通知其他用户 这是我的代码 scope onExit function scope chatstat
  • UITableView 滑动删除 iOS 上的手势冲突

    我的手势识别器有问题 我的目标是在表视图中实现使用滑动删除 但我认为其他手势是相互冲突的 我正在使用这个库romonthego REFrostedViewController https github com romaonthego REF
  • 加快 ImageView 中的缩放功能

    我目前正在处理非常大的图像 7 10mb 由于多种原因无法调整大小或压缩 现在 我们的想法是在自定义 ImageView 中显示它们 使用户能够进行双击缩放 捏合缩放等 我使用这个库来完成这项工作 https github com Mike
  • Android 改变 ImageView / Bitmap 的颜色

    我需要找到一种方法来改变 Android 中位图的颜色 我需要在我的应用程序中平滑地替换 更改椭圆形图像的颜色 具体取决于int价值 我需要类似的东西myValue 5比改变我的图像的颜色RED and if myValue 322将颜色更
  • 如何在android中的操作栏中创建Edittext?

    我们可以在操作栏中使用编辑文本吗 在阅读了 Google 中的大量资源后 我找不到如何在操作栏中创建编辑文本 谁能告诉我该怎么做 您可以设置自定义View为了ActionBar像这样 getActionBar setCustomView R
  • 在 AppAuth-Android 中注销

    我有一个用JAVA开发的Android应用程序 对于这个应用程序 我使用的是身份服务器4 https github com IdentityServer IdentityServer4作为我的 STS 一切正常 但我找不到任何注销的实现Ap
  • 如何从 Facebook 邀请好友到 Android 应用程序? - 给出错误

    我正在开发一个 Android 应用程序 我正在努力将 邀请朋友 功能添加到我的应用程序中 它转到我的AppLinkUrl成功但显示错误 我的清单代码如下
  • ACCESS_BACKGROUND_LOCATION 不适用于低于 Q (29) 的 Android 版本

    我的应用程序面向 Android API 28 根据文档 https developer android com preview privacy location target android 10 我应该要求ACCESS BACKGROU
  • ios 在后台处理推送通知

    我想保存应用程序处于后台状态时到达的推送通知 我知道关于 void application UIApplication application didReceiveRemoteNotification NSDictionary userIn
  • 使用嵌套的 hashmap 参数发送 volley 请求

    我正在使用 android volley 框架向我的服务器发送 jsonobject 请求 get 请求工作正常 现在我想发送一个带有请求参数的 post 请求 该请求参数是嵌套的 hashmap 我重写 getparams 方法 但它期望
  • 可以获取位置,但无法获取航向

    我目前只使用模拟器 但我在 iOS 模拟器上快速使用 CoreLocation 时遇到问题 我得到此代码打印的位置更新 但从未得到标题 我不想当然 我正在尝试制作一个指南针类型的应用程序 它将显示目标的方位 class CompassVie
  • iOS 防止计时器 UILabel 在数字变化时“晃动”

    我有一个UILabel它以以下格式显示计时器的输出MM ss SS 分 秒 厘秒 但是随着厘秒宽度的变化 它从左向右 摇动 例如 11 比 33 窄 有什么办法可以减轻这种情况吗 我尝试过将其居中 给它固定的宽度 但它们似乎没有帮助 从iO
  • AWS S3 公共对象与私有对象?

    回到 S3 我的存储桶中有图像的 URL 我将在我的应用程序中呈现这些图像 但它们被设置为私有 当我尝试单击该链接时 它显示 访问被拒绝 当我将链接的设置更改为公共时 它会通过 但是我读到公共访问并不是最安全的事情 所以这本质上是一个由两部
  • 在 Android 布局 xml 文件中使用字符串格式参数 [重复]

    这个问题在这里已经有答案了 我在 String xml 文件中定义了一个使用格式参数的字符串 即
  • 在 HTML5 iOS 7 / iOS 8 中显示十进制键盘

    经过几个小时的搜索后 我只是有一个简单的问题 是否有可能在网络浏览器输入字段中显示小数键盘 input type number 只显示数字 但我需要在左下角使用逗号或点 我尝试过任何事情 pattern step等等 但没有显示十进制键盘
  • 设置/覆盖 UICollectionView 中单元格之间的填充

    我有一个 UICollectionView 但在获取单元格之间的填充时遇到了问题 理论上 我应该能够将屏幕除以 4 并且我可以获得包含 4 个图像的单元格大小 完美地占据屏幕宽度 但是 它选择不这样做 相反 它会创建 3 个具有巨大填充的图

随机推荐

  • 如何在ireport中为堆积条形图中的条形设置不同的颜色?

    我需要为堆积条形图中的每个条形设置唯一的颜色 无论我在一个条中看到什么颜色 它都不应该在任何其他条或任何其他堆栈中重复 例如 我的报告中有 5 个栏 每个栏有 3 个不同的堆栈 我想将红色相关颜色应用于第一个条形及其堆栈 第二条应该有蓝色相
  • JTextField - setColumns() 方法对我不起作用

    我的问题是我的 JTextField setColumns int field1 setColumns 5 不起作用 我猜这是布局管理器的问题 不过 我正在从练习册上学习 我所知道的唯一布局是 flowLayout borderLayout
  • JQuery同步动画

    在很多情况下我希望动画能够同步执行 特别是当我想制作一系列连续的动画时 有没有一种简单的方法来制作 jQueryanimate函数调用同步 我想到的唯一方法是在动画完成时将标志设置为 true 并等待该标志 jQuery 无法制作同步动画
  • response.sendRedirect() 和 request.getRequestDispatcher().forward(request,response) 有什么区别[重复]

    这个问题在这里已经有答案了 我使用JAVA时出现页面跳转的问题 如果我使用 response sendRedirect login jsp 然后我得到这个网址 http localhost 8080 login jsp 但如果我使用 req
  • Android:寻找不同的 TimePicker 样式

    大家好 一个简短的问题 我一直在寻找这种风格的 TimePicker 但到目前为止没有结果 如图所示 机器人绘图 http www droiddraw org widgetguide html 我开始怀疑这种风格的存在 P 任何知道如何获得
  • 在 Helm 值属性中传递数组

    我想将数组作为 Helm 中 yaml 值文件 中的属性传递 我尝试过的 Attempt elasticsearch uri 127 0 0 1 9200 127 0 0 2 9200 Error ReadString 期望 或n 但发现
  • 阻止设计者调用 getter(VS 2008,WinForms)

    我有一个简单的用户控件 其中包含一个最初为空的组合框 该 CB 的 setter 向其添加项目 而 getter 返回选定的项目 当将此 UC 添加到 Form 时 设计者会自动调用空 CB 的 getter 稍后会调用用项目填充 CB 的
  • 获取下周一的日期

    如何在 JavaScript 中获取下周一 我在互联网上找不到任何相关内容 我也尝试了很多代码并对此有所了解 但我无法真正做到这一点 这是我的代码 var d new Date var day d getDay d new Date d s
  • 访问 PHP 中的活动会话

    如何获取服务器上所有活动 PHP 会话的列表并从一个用户的实例中访问它们 激励案例是显示网站上所有当前活动用户的列表 其中用户名存储在每个用户的 PHP 会话中 注意 我知道我可以通过数据库 甚至文件系统 创建自己的状态 但我正在寻找一种利
  • Elasticsearch - 合并多个文档中的字段

    假设我有一堆这样的文档 foo 1 2 3 foo 3 4 5 对于针对这些文档运行的查询 我正在寻找一种方法来返回所有值的数组foo 最好是唯一的值 但重复也可以 foo 1 2 3 3 4 5 我研究了聚合 API 但我不知道如何实现这
  • 缩略图点击后消失,FancyBox

    我创建了 FancyBox 画廊 但现在 当我单击缩略图时 它会按计划显示图像库 但在后台我可以看到所有缩略图都一一消失 F5 或页面重新加载后 所有缩略图都会恢复 My code a class fancybox title a a cl
  • Visual Studio 2015 预览版中的 Windows Phone 8.0 应用程序打包

    我通过我的学生 Dreamspark 帐户安装了 Visual Studio 2015 Ultimate Preview 我将其安装在更新的 Windows 8 1 之上 工作站 我有 Windows Phone 8 0 应用程序 需要将其
  • 如何冻结所有可冻结的 WPF 对象?

    我想冻结窗口中的所有可冻结对象 以获得更好的性能 为此 我使用了几个像这样的循环 foreach Brush item in FindLogicalChildren
  • 如何绘制方向箭头

    我有很多方向和角度的线条 我使用它们来绘制它们UIBezierpath 我需要在线的一端画一个箭头 动态地取决于给定点 Edit Edit 2 杰克的回答是我的代码 let y2 line point2Y let path UIBezier
  • 将自然数转换为特定基数并将其作为列表返回

    我想将函数的结果显示为列表而不是数字 我的结果是 define lst list define num gt base n b if zero n append lst list 0 append lst list 10 num gt ba
  • 如何在 HBase 中续订过期的 Kerberos 票证?

    我有一个小型 spring 服务 它提供基本功能 例如从 hbase 表中放入 删除 获取 一切似乎都正常 但有一个问题 启动 Tomcat 服务器 10 小时后 我的 kerberos 票证过期 因此我应该更新它 我尝试对 hbase 使
  • 仅在成功 Stripe Checkout 付款后才提交 Rails 表格

    我正在使用 Rails 4 2 并尝试集成 Stripe Checkout https stripe com docs checkout guides rails https stripe com docs checkout guides
  • 间隙误差。 Pandas 使用动态查询字符串过滤数据帧。

    大家好 该问题与 Python 的反向间隙错误有关 我正在创建一个动态查询字符串以在 pandas 中进行过滤 代码是 filters dict wlbWellType EXPLORATION query string index 0 fo
  • ObjectOutputStream 方法:writeBytes(String str) 与 writeUTF(String s);

    两者之间的主要区别是什么 它们仍然都是用于编写字符串 public void writeUTF String str throws IOException Primitive data write of this String in mod
  • 是否有可能在 Flutter 中动态初始化 Firebase?

    我尝试根据用户语言偏好来初始化 Firebase 例如 用户打开应用程序 选择语言A Flutter应该初始化项目A 配置等 当用户选择不同的语言时也是如此 问题是 iOS 需要有默认的 GoogleService Info plist 文