我正在尝试对 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/