我正在尝试运行firebase Cloud 功能,以便在创建新客户时为Angular 5项目进行原子(批量)更新 .
我一直收到这个错误,无法解决问题所在:
console.error
错误:无法在Function.encodeValue(/user_code/node_modules/firebase-admin/node_modules/@google-cloud/firestore/src/document.js:658:11)将类型([对象未定义])编码为Firestore值
Cloud 函数(index.js)
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const stripe = require('stripe')(functions.config().stripe.testkey);
// 1. Create Stripe User on sign up
exports.createStripeCustomer = functions.auth.user().onCreate(event => {
// user auth data
const user = event.data;
// register Stripe user
return stripe.customers.create({
email: user.email
})
.then(customer => {
const db = admin.firestore();
const batch = db.batch();
const currentTime = this.timestamp;
const customerDoc = db.collection('customers').doc(customer.id);
const userDoc = db.collection('users').doc(user.uid);
batch.set(customerDoc, {userId: user.uid, timestamp: currentTime });
batch.set(userDoc, {customerId: customer.id, timestamp: currentTime });
return batch.commit();
});
});
1 回答
我刚发现错误 . 我正在定义
currentTime
和this.timestamp
但我从未定义timestamp
.