我想在新用户注册时在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)
答案 0 :(得分:2)
所以,我忘了用户对象包含的细节受限于你使用什么样的Auth。
例如: 如果您使用电子邮件和密码,您的用户对象将只有电子邮件,密码,uid。
因此
'name' : user.displayName, //invalid undefined object
'email': user.email, //valid
'phoneNumber': user.phoneNumber, //invalid
'photoUrl': user.photoURL //invalid