错误:无法将类型([对象未定义])编码为Firestore值

时间:2017-12-23 06:07:33

标签: firebase-authentication google-cloud-functions google-cloud-firestore

我想在新用户注册时在firestore中添加用户详细信息,但我在控制台中收到有关“未定义对象”的错误

功能:

  exports.storeUserData = functions.auth.user().onCreate(event =>{
    const user = event.data;
     var db_uid_user = db_firestore.collection('users').doc(user.uid).set({
        'name' : user.displayName,
        'email': user.email,
        'phoneNumber': user.phoneNumber,
        'photoUrl': user.photoURL

    });

     console.log('User Add (uid)',user.uid);

});

ERROR:

 Error: Cannot encode type ([object Undefined]) to a Firestore Value
    at Function.encodeValue (/user_code/node_modules/firebase-admin/node_modules/@google-cloud/firestore/src/document.js:658:11)
    at Function.encodeFields (/user_code/node_modules/firebase-admin/node_modules/@google-cloud/firestore/src/document.js:530:36)
    at WriteBatch.set (/user_code/node_modules/firebase-admin/node_modules/@google-cloud/firestore/src/write-batch.js:254:35)
    at DocumentReference.set (/user_code/node_modules/firebase-admin/node_modules/@google-cloud/firestore/src/reference.js:416:8)
    at exports.storeUserData.functions.auth.user.onCreate.event (/user_code/index.js:15:71)
    at Object.<anonymous> (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:59:27)
    at next (native)
    at /user_code/node_modules/firebase-functions/lib/cloud-functions.js:28:71
    at __awaiter (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:24:12)
    at cloudFunction (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:53:36)

1 个答案:

答案 0 :(得分:2)

所以,我忘了用户对象包含的细节受限于你使用什么样的Auth。

例如: 如果您使用电子邮件和密码,您的用户对象将只有电子邮件,密码,uid。

因此

     'name' : user.displayName,        //invalid undefined object 
    'email': user.email,               //valid
    'phoneNumber': user.phoneNumber,   //invalid
    'photoUrl': user.photoURL          //invalid