当有人登录我的应用程序时,我想在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);
});
但是此函数未创建值,并且在函数日志中没有关于此函数的任何错误。 请帮我解决。
答案 0 :(得分:0)
使用Cloud Functions auth触发器,您需要返回一个仅在所有异步工作完成后才能解决的承诺。这不是可选的,并且是告诉Cloud Functions何时可以安全清理和terminate the function的唯一方法。 set()返回了一个承诺,因此您可以直接将其返回:
return admin.database().ref('users/' + user.uid).set(userObject);