我是React Native的新手,我对Cloud Functions有一个问题。
getAuthor(uid){
var getUser = firebase.functions().httpsCallable('getUser');
console.log('success');
getUser({uid: uid}).then(function(result) {
console.log('getUser called')
var user = result.data.uid;
return(
result
)
})
.catch(function(error) {
var code = error.code;
var message = error.message;
var details = error.details;
});
}
当我运行这段代码时,打印了 "成功",但从未打印 "getUser called"。我认为这意味着getUser从未被调用。但我按照Firebase指南 "从应用程序中调用函数 "进行了操作,似乎也是如此。是Cloud Functions从未被初始化还是什么问题?在 Firebase 指南中,说要初始化 Cloud Functions 实例,需要在其中添加 var functions = firebase.functions();
但当我把它添加到config.js时,我得到了一个错误,所以我跳过了这一步。对不起,如果这看起来很明显,我以前从未使用过React Native或Firebase。如果有任何帮助,我将非常感激
对了,就是这个函数。
exports.getUser = functions.https.onCall((data, context) => {
const uid = data.uid;
auth.getUser(uid)
.then(function(UserRecord) {
console.log('USER RECEIVED:' + UserRecord.email.toJSON());
return {email : UserRecord.email.toJSON()};
})
.catch(function(error){
console.log(error);
});
原来我不能用用户的UID访问用户信息! 解决办法是把它添加到Firebase数据库中。