【问题标题】:Cloud functions: oncall function returns null before running chain of promises云函数:oncall 函数在运行 Promise 链之前返回 null
【发布时间】:2020-11-07 14:30:31
【问题描述】:

我创建了一个云函数来创建一个 firebase auth 用户并将用户的数据记录到 firestore。

云功能

const admin = require('firebase-admin');
admin.initializeApp();

exports.createUser = functions.https.onCall((data, response) => {
  admin.auth().createUser({
    email: data.email,
    password: data.password,
    displayName: data.name
  }).then(user => {
    return admin.firestore().collection('users').doc(user.uid).set({
      email: data.email,
      id: user.uid,
      name: data.name,
      role: data.role
    });
  }).then(() => {
    return { status: true, message: 'User added successfully!' };
  }).catch(error => {
    return { status: false, message: 'Error occurred while creating the user!' };
  })
})

Angular .ts 文件

export class AddUserComponent implements OnInit {
  constructor(private angularFireAuth: AngularFireAuth) {}

  ngOnInit(): void {
  }

  onSubmit(user) {
    this.angularFireFunctions.httpsCallable('createUser')(user).subscribe(response => {
      console.log(response);
    }, error => {
      console.log(error);
    });
  }
}

当我在我的 Angular 应用程序中使用 angular/fire 调用此函数时,它返回 null。此外,将用户添加到 Firestore 最多需要 3 分钟。我应该在这段代码中修改什么?

【问题讨论】:

    标签: angular firebase firebase-authentication google-cloud-functions angularfire2


    【解决方案1】:

    正如 firebase 文档中关于发回 onCall 函数 here 的结果一样,您应该返回任何异步函数。所以,在云函数中的admin.auth()...之前添加return关键字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-01
      • 2021-08-15
      • 2018-12-05
      • 1970-01-01
      • 1970-01-01
      • 2020-07-10
      • 2020-09-08
      • 1970-01-01
      相关资源
      最近更新 更多