我正在尝试使用FirebaseUI Web
和Vue.js在注册过程中将用户数据加载到Firestore中。该帐户在Firebase一侧创建。但是,没有填充数据库-我没有收到任何错误,但是alert('Signed in as ' + displayName);
确实显示了正确的信息,并且用户已登录。
更新:我通过在callbacks
之外创建一个函数来重构代码,以反映错误处理-问题没有改变(没有错误&&没写)。
firbaseui-config.js:
import firebase from 'firebase';
import firebaseui from 'firebaseui'
import { accountsCollection } from '@/services/registerFirebase'
export const FBuiConfig = {
signInSuccessUrl: '/dashboard',
signInFlow: 'popup',
callbacks: {
signInSuccessWithAuthResult: function(authResult) {
addUser(authResult);
return false;
},
uiShown: function() {
document.getElementById('app-drawer').style.display = 'none';
document.getElementById( 'app-toolbar').style.display = 'none';
},
},
signInOptions: [
firebase.auth.GoogleAuthProvider.PROVIDER_ID,
{
provider: firebase.auth.EmailAuthProvider.PROVIDER_ID,
requireDisplayName: true,
forceSameDevice: true,
},
firebaseui.auth.AnonymousAuthProvider.PROVIDER_ID,
],
tosUrl: '/tos',
privacyPolicyUrl: function() {
window.location.assign('/pp');
}
};
function addUser(authResult) {
const user = authResult.user;
const userUid = user.uid;
const displayName = user.displayName;
const account = {
useruid: userUid,
calendarEvents: []
}
accountsCollection.doc(userUid).set(account)
.then(function (docRef) {
console.log('Document written with ID: ', docRef.id)
})
.catch(function (error) {
var errorCode = error.code;
var errorMessage = error.message;
alert.error(
'Error adding document: ', errorCode + ': ' + errorMessage
)
})
alert('Signed in as ' + displayName); // <-- WORKS!
}
答案 0 :(得分:0)
非常感谢@RenaudTarnec。数据正在返回a:visited img
,不幸的是,Auth提供程序在发生这种情况时未返回任何错误。
通过使用所需的返回数据之前创建日志,null
有助于解决该问题。
下面是最后一个工作示例。
fb.usersCollection.doc(account.userUid).set(account)