我可以使用firebase.auth().signInWithCustomToken
从我现有的Electron应用程序授权Firebase应用程序。此方法的承诺解决了,我能够使用firebase.auth().currentUser.uid
获取当前授权用户。
此时我必须在技术上能够写入/users/<currentUser>
。但是,调用userRef.set()
和userRef.update()
方法不会更新数据库引用并以静默方式失败(这些方法的回调和承诺都无法解析,并且不会抛出任何错误)。
奇怪的是,完全相同的代码适用于不同的新创建的Electron应用程序。我的代码如下所示:
const writeToFirebase = (customToken) => {
syncApp.auth().signInWithCustomToken(customToken).then(user => {
const userId = firebase.auth().currentUser.uid; // this is successfull
const userRef = firebase.database().ref("/users/" + userId);
userRef.set({data: data}, () => { //callback does not trigger });
userRef.update({data: data})
.then(() => {//promise does not resolve})
.catch(err) => {// promise is not rejected either! }
});
}
有关如何调试此功能的任何指示都会有所帮助。
答案 0 :(得分:0)
我发现了这个问题。其他人不太可能遇到同样的问题,但如果你这样做,请查看电子版browserWindow.loadURL
中的userAgent值。
我的设备是Android移动设备&amp;由于这个原因,Firebase未设置/更新。我认为Firebase服务器在看到移动用户代理时反应不同,我使用的是Firebase JS SDK,而不是导致此问题的Android SDK。