【问题标题】:Using firestore SDK on cloud function getting error: Cannot encode type在云功能上使用 Firestore SDK 时出现错误:无法编码类型
【发布时间】:2018-07-11 18:59:25
【问题描述】:

我想创建一个在身份验证触发时将数据添加到 Firestore 的函数。

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const db = admin.firestore();
exports.addUserData = functions.auth.user().onCreate(event => {
    const user = event.data;
    const userUid = user.uid;
    return db.collection('peoples').doc(userUid).set({
        name:user.displayName,
        uid:user.uid
    });
});

但它给出了错误

错误:无法将类型 ([object Undefined]) 编码为 Firestore 值 在 Function.encodeValue (/user_code/node_modules/firebase-admin/node_modules/@google-cloud/firestore/src/document.js:775:11) 在 Function.encodeFields (/user_code/node_modules/firebase-admin/node_modules/@google-cloud/firestore/src/document.js:646:36) 在 Function.fromObject (/user_code/node_modules/firebase-admin/node_modules/@google-cloud/firestore/src/document.js:202:55) 在 WriteBatch.set (/user_code/node_modules/firebase-admin/node_modules/@google-cloud/firestore/src/write-batch.js:272:39) 在 DocumentReference.set (/user_code/node_modules/firebase-admin/node_modules/@google-cloud/firestore/src/reference.js:425:8) 在exports.addUserData.functions.auth.user.onCreate.event (/user_code/index.js:9:46) 在对象。 (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:59:27) 在下一个(本机) 在 /user_code/node_modules/firebase-functions/lib/cloud-functions.js:28:71 在 __awaiter (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:24:12)

问火力基地

【问题讨论】:

    标签: node.js firebase google-cloud-functions google-cloud-firestore


    【解决方案1】:

    错误消息表明您传入的值之一是undefined。给定您的代码,uid 不可能永远是 undefined,因此显示名称可能是原因。

    用户个人资料不需要有显示名称,因此您的代码应该处理没有显示名称的情况。

    const user = event.data;
    const userUid = user.uid;
    const userName = user.displayName ? '';
    return db.collection('peoples').doc(userUid).set({
        name: userName,
        uid: userUid
    });
    

    【讨论】:

      猜你喜欢
      • 2021-02-24
      • 1970-01-01
      • 2022-01-20
      • 2021-06-23
      • 2017-06-18
      • 1970-01-01
      • 1970-01-01
      • 2020-10-15
      相关资源
      最近更新 更多