Flutter与原生iOS结合的Firebase火力全开
引言在当今的移动开发领域,混合开发框架如Flutter正逐渐受到开发者的青睐。然而,对于已经有成熟iOS应用的团队来说,如何将现有的原生应用逐步迁移到Flutter上是一个不小的挑战。特别是在使用Firebase服务时,如何在Flutter和原生iOS之间共享这些服务是一个常见的问题。本文将探讨如何在Flutter和原生iOS应用中同时使用Firebase Firestore。问题描述我们有一款iOS原生应用,依赖于Firebase的多种服务,包括身份验证(Auth)和云火数据(Firestore)。现在我们希望将应用逐步迁移到Flutter,但我们发现无法在Flutter中直接访问已经在原生代码中初始化好的Firestore实例。错误信息显示:Terminating app due to uncaught exception ‘FIRIllegalStateException’, reason: ‘Firestore instance has already been started and its settings can no longer be changed. You can only set settings before calling any other methods on a Firestore instance.’这个错误是因为Flutter插件试图重新定义Firestore的设置,而这些设置在原生iOS中已经初始化。解决方案探索/