我在离子页面上使用firebase代码从firebase db中检索值,这项工作正常 .
我计划将firebase代码移动到提供程序类中,并在我的离子页面中调用提供程序类方法 . 因此,我不是从页面调用firebase,而是从页面调用provider,提供者将调用firebase .
当我在提供程序中实现一个方法,如下所示,并从离子页面调用它时,provider方法返回undefined . 我猜这是因为firebase的异步性质,甚至在设置值之前就执行了返回 . 我如何理解这个概念并解决这个问题?我在想 - 而不是使用.on;我应该使用会返回一个promise的.once,但不确定我需要将返回行放在firebase代码/ promise之外,那么如何让返回等待呢?
1 回答
这可以通过使用.once并直接返回语句来解决,如下所示 . 然后,调用者使用.then关键字从promise中检索数据 .