当前位置: 首页 > 面试题库 >

默认应用尚未配置

越伯寅
2023-03-14
问题内容

我正在尝试将我的应用程序升级到新版本的Firebase。我仔细阅读了设置指南,并编辑了所有代码以匹配新语法。但是,当我运行该应用程序时,出现了这两个错误。

The default app has not been configured yet.
Terminating app due to uncaught exception 'MissingDatabaseURL', reason: 'Failed to get FIRDatabase instance: FIRApp object has no databaseURL in its FirebaseOptions object.'

FIRApp.configure()在AppDelegate中,并将GoogleServices-
Info.plist导入到我的项目中。plist也具有所有正确的信息。其他人遇到这个问题或知道如何解决?


问题答案:

这是您的问题的答案:

要配置Firebase,您必须在某处执行 FIRApp.configure() 。完成此操作后,可以使用 let
firebaseDatabaseReference = FIRDatabase.database()。reference()

获取对该数据库的引用并开始使用它。问题不在于Firebase本身,而在于Swift的行为方式。

如果您放入FIRApp.configure()AppDelegate func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool,然后在声明的函数 之外MyDatabase class使用,则 有时 代码
在函数执行之前执行。let firebaseDatabaseReference = FIRDatabase.database().reference()
____FIRDatabase.database().reference()``application didFinishLaunchingWithOptions

本质上,您的班级试图在对Firebase数据库进行配置 之前 对其进行引用,从而在控制台中生成错误“尚未配置默认应用程序”。

注意:例如,在iOS Simulator中,这种情况并非一直发生,有时应用程序启动速度很慢,并且MyDatabase“
let”执行并尝试获取引用之前没有完成的机会。

这就是为什么移动FIRApp.configure()代码以覆盖AppDelegate中的init()的原因,从本质上讲,它确保在初始化AppDelegate时(在这种情况和大多数情况下,在初始化MyDatabase之前)执行配置代码。

override init() {
   super.init()
   FIRApp.configure()
   // not really needed unless you really need it FIRDatabase.database().persistenceEnabled = true
}

还要确保您拥有super.init()(这样,您的超类便会获得“消息”),因此重写不会带来多大的弊端。



 类似资料:
  • 我使用jhipster版本7.6.0,这是我的CacheConfiguration类。 以下是redisson的依赖关系: 这是我的应用程序dev.yml: 一切都是由jHipster生成的,在安装redis 3.2.100版后,我遇到了以下异常: 顺便说一下,项目正在成功编译。 提前感谢您的帮助!

  • 我在运行项目时遇到错误: 环境: 请求方法:发布请求URL:http://127.0.0.1:8000/ Django版本:1.8。4 Python版本:2.7。6个已安装的应用程序:('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','djang

  • 我需要使用带有Firebase的电话身份验证,但每次我单击将代码发送给用户的按钮时都会出现此错误,这可能很容易解决,但由于我对Firebase和反应本机的了解不是很深,我找不到解决方案。 这是我的代码: 我想我需要在代码的某个地方插入这个“firebase.initializeApp()”。请问,我如何解决此问题?

  • 与Jquery Mobile自动初始化共同协作 Working with Jquery Mobile's Auto-initialization 不像其他的Jq项目,比如jq和jq ui,Jquery Mobile会在加载到增强特性时马上应用它(远早于document.ready事件发生时)。这些特性会基于Jquery Mobile的默认配置应用,是针对默认的情形设计的,他可能符合你的需求,也可能

  • 这是我的配置文件: 日志配置文件读起来非常清楚,因为它使用my/log目录中定义的模式正确地写入。 这是我在代码中实例化它的方式:

  • 这似乎是明显的合并错误。我正在尝试将现有代码移植到即时应用程序模块。我所尝试的是: > 已将主应用程序模块更改为BaseFeatuRemodule。 创建了新模块CompleteApp。 清空了CompleteAppModule的清单: 我试过重建/无效缓存和重新启动/重新启动studio,但没有帮助。有谁能帮我一下吗?