Firebase云功能无法创建数据库值

时间:2020-05-03 16:27:30

标签: javascript firebase firebase-realtime-database google-cloud-functions

当有人登录我的应用程序时,我想在firebase实时数据库中创建默认值。 而且我已经通过vb代码将此代码部署到了云功能来完成这项工作。

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp(functions.config().firebase);

exports.defaultaccountparams = functions.auth.user().onCreate(user => {
    const userObject = {
        name : user.displayName,
        email : user.email,
        profile_picture : user.photoURL,
        createdOn : user.metadata.creationTime || null,
        matches_played : 0,
        BC_won : 0,
        total_kills : 0,
        matches_won : 0,
        BC: 0,
        joined_matches : 0,
        };

    admin.database().ref('users/' + user.uid).set(userObject);
  });

但是此函数未创建值,并且在函数日志中没有关于此函数的任何错误。 请帮我解决。

1 个答案:

答案 0 :(得分:0)

使用Cloud Functions auth触发器,您需要返回一个仅在所有异步工作完成后才能解决的承诺。这不是可选的,并且是告诉Cloud Functions何时可以安全清理和terminate the function的唯一方法。 set()返回了一个承诺,因此您可以直接将其返回:

return admin.database().ref('users/' + user.uid).set(userObject);