【发布时间】:2019-07-24 00:53:49
【问题描述】:
编辑:在深入了解指南并遵循 Doug 的回答后,我尝试编辑我的代码,但仍然无法正常工作。
这是我的新代码 (index.ts):
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
admin.initializeApp(functions.config().firebase);
const db = admin.firestore();
export const createUser = functions.auth.user().onCreate((user)=>{
const newUser = new MyUser(user.uid, "Friend","", new Array, Array("en"),0,0,0 )
return db.doc("users/"+user.uid).set({newUser});
});
class MyUser{
uid: String;
first_name: String;
last_name: String;
communities_list: Array<string>;
lang_list: Array<string>;
reputation: Number;
join_date: Number;
last_activity: Number;
constructor(uid:string, first_name:string, last_name:string, communities_list:Array<string>, lang_list:Array<string>, reputation:Number, join_date:Number, last_activity:Number) {
this.uid = uid;
this.first_name = first_name;
this.last_name = last_name;
this.communities_list = communities_list;
this.lang_list = lang_list;
this.reputation = reputation;
this.join_date = join_date;
this.last_activity = last_activity;
}
}
我是 TypeScript 和 Cloud Functions 的新手。 我尝试创建的两个测试是一个由身份验证触发器触发,另一个由创建新文档触发。这两个操作的结果都应该是对数据库的写入,但实际上都没有发生写入。
有人能看出我的代码有什么问题吗? 另外,你能调试云功能吗?我怎么知道我的代码在哪里失败了?
这些是我的功能:
import * as functions from 'firebase-functions';
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const db = admin.firestore();
exports.createUser = functions.auth.user().onCreate((user)=>{
const userMap = new Map;
userMap.set("uid", user.uid);
userMap.set("first_name", "Friend");
userMap.set("last_name", "");
userMap.set("communities_list", new Array);
userMap.set("lang_list", new Array("sdsdf"));
userMap.set("reputation", 0);
userMap.set("join_date", 0);
userMap.set("last_activity", 0);
db.doc('users/'+user.uid).set({userMap});
});
exports.newIndiceAlgolia = functions.firestore.document('communities/{newCommunity}').onCreate((snap, context) => {
const newValue = snap.data();
if (newValue != null){
const objectID = newValue.objectID;
const title = newValue.title;
const description = newValue.description;
const members = 0;
const map = new Map;
map.set("objectID", objectID);
map.set("title", title);
map.set("description", description);
map.set("members", members);
db.doc('check_function/jjjj').set({map});
}
});
export const helloWorld = functions.https.onRequest((request, response) => {
response.send("Hello from Firebase!");
});
第三个只是第一次创建文档时的示例,所以我把它留作检查,它工作得很好。
【问题讨论】:
标签: typescript firebase google-cloud-firestore google-cloud-functions