firebase-使用电子邮件和密码创建用户返回未定义的uid

时间:2019-03-21 11:37:31

标签: javascript firebase firebase-authentication

我目前正在使用firebase中的一个功能,该功能可以创建用户而无需登录,请按照此网站上的教程进行操作。 (由于时间紧迫,我决定不采用firebase-admin的方式添加用户)。我当前的问题是当我执行CreateUserWithEmailAndPassword方法时,它不能保证并且根本不提供uid。用户也完全没有注册。这是我用于此的代码:

var otherApp = firebase.initializeApp({
    apiKey: "AIzaSyDXS11uOZGDmHYuN3J8BJxOG_9vanNakqA",
    authDomain: "pasigueno-assist-1532249634197.firebaseapp.com",
    databaseURL: "https://pasigueno-assist-1532249634197.firebaseio.com",
    projectId: "pasigueno-assist-1532249634197",
    storageBucket: "pasigueno-assist-1532249634197.appspot.com",
    messagingSenderId: "394982410129"
  }, "other");

otherApp.auth().createUserWithEmailAndPassword(username, password).then(function (user) {
    var uid = user.uid;
    var fullnames = fullname.value;
    var barangays = barangay.value;
    var status = "Active";
    var addresss = address.value;
    var userTypes = userType.value;
    var rootRef = firebase.database().ref();
    var storesRef = rootRef.child('users');
    var newStoreRef = storesRef.push();
    newStoreRef.set({
        Address: addresss,
        Name: fullnames,
        Barangay: barangays,
        Username: username,
        UserType: userTypes,
        UserID: uid,
        Status: status
    });
    otherApp.auth().signOut();
    console.log("ok");
}, function (error) {
    console.log(error);
    otherApp.auth().signOut();
});

var otherApp用作我的辅助参考,以避免在定期登录时被踢出火力地堡。

1 个答案:

答案 0 :(得分:1)

那么,您从createUserWithEmailAndPassword调用中得到什么样的对象?它告诉您,您得到一个UserCredential-没有uid属性。 (但是,它有一个user属性,其中包含您的uid字段)。

简短回答:

otherApp.auth().createUserWithEmailAndPassword(username, password).then(function (userCreds) {
    var uid = userCreds.user.uid;
    // etc