javascript - Firebase set() promise 停留在挂起状态

标签 javascript node.js firebase firebase-realtime-database firebase-authentication

我正在尝试对 Firebase 数据库进行简单的写入,如下所示:

return app.register( email, password ).then( f => {
  return app.login( email, password )
} ).then( f => {
  return app.currentUser()
} ).then( user => {
  return app.firebase.db().ref( `users/${user.uid}` ).set( {color: 'red'} )
} ).then( f => {
  console.log( "This never triggers" )
} )

其中 app.register 是:

( firebase, email, password ) => firebase.auth().createUserWithEmailAndPassword( email, password )

其中 app.login 是:

( firebase, email, password ) => firebase.auth().signInWithEmailAndPassword( email, password )

并且app.currentUser是:

firebase => {
    return new Promise( ( resolve, reject ) => {
        firebase.auth( ).onAuthStateChanged( user => {
            user ? resolve( user ) : reject( user )
        } )
    } )
}

app.firebase 是一个初始化的 Firebase 引用。

我没有收到任何错误,但 set() 永远不会解析。

我很困难,非常感谢任何帮助。

最佳答案

问题已解决。

当使用部分导入时,例如:

import firebase from 'firebase/app'
import auth from 'firebase/auth'
import db form 'firebase/database'

当不在浏览器中运行时,Firebase 会默默地使某些元素失败(我使用的是 Mocha)。

解决方案(很糟糕)是导入完整的包:

import firebase from 'firebase'

关于javascript - Firebase set() promise 停留在挂起状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43936569/

相关文章:

javascript - 为什么wavesurferjs 会溢出父div

javascript - Brightcove 视频模板加载处理程序未触发

javascript - ElasticSearch - Nodejs 中的完成建议器

javascript - 如何使用 jQuery 动态区分何时使用 .val() 或 .text()?

javascript - 如何替换列表中特定索引处的元素

javascript - 防止 MySQL 行一次更新两次? (nodejs mysql)

javascript - mailgun.js 内联图像附件

javascript - 配置 firebase 项目域限制

使用 onAuthStateChanged 使用 Flutter 登录 Firebase

android - 适用于 Android 的 Firebase 数据库 - 使用持久性在离线时写入事件