【问题标题】:Auth triggered cloud function (create user) doesn't execute身份验证触发的云功能(创建用户)不执行
【发布时间】:2019-12-02 06:14:16
【问题描述】:

无法理解我做错了什么。 我已经成功部署了这些函数,并且可以在项目的仪表板中看到它们,但是当新用户通过身份验证时,该函数不会执行。

该函数的目的是在数据库中为这个新注册的用户创建一个新的用户对象。

当我注册一个新用户时(我一直在使用 google 登录)- 数据库中没有任何反应。但是,当我转到身份验证选项卡时,我可以看到一个新用户已通过身份验证。

这是我的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; 
   }  
}

【问题讨论】:

  • 您到底在做什么(请详细说明)表明应该执行该功能?请编辑问题以进行解释。

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


【解决方案1】:

我的问题在于我试图设置的对象。在挖掘了它(云功能的新手)后,我在云功能中看到了这条消息:

Error: Value for argument "data" is not a valid Firestore document. Couldn't serialize object of type "MyUser" (found in field newUser). Firestore doesn't support JavaScript objects with custom prototypes (i.e. objects that were created via the "new" operator).

在为此寻找解决方案后,我意识到我需要更改这一行:

return db.doc("users/"+user.uid).set({newUser});

到这里

return db.doc('users/'+user.uid).set(JSON.parse(JSON.stringify(newUser)));

现在它可以工作了。

【讨论】:

    猜你喜欢
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 2020-08-23
    • 2018-08-06
    • 2020-08-17
    相关资源
    最近更新 更多