gpt4 book ai didi

react-native - Firebase 云函数调用 : error : Object message : "Bad Request" status : "INVALID_ARGUMENT"

转载 作者:行者123 更新时间:2023-12-04 02:52:27 24 4
gpt4 key购买 nike

首先我正在使用 react-native

我想在我的项目中使用自定义声明,因为它似乎符合我希望在我的应用中使用的角色分布。

按照文档设置我的应用程序后,我成功创建了一些功能

但是,事情是这样的,当我尝试通过获取端点来调用函数时,我总是会收到此错误:

在控制台中

error : Object message : "Bad Request" status : "INVALID_ARGUMENT"

在 Firebase 控制台中

   addAdminRoleTest    Request body is missing data. { email: 'dev@test.com' }

除了我从抓取中发送了错误的信息外,我找不到任何答案,但我不明白为什么。

我什至试图简化我的功能,只是为了获取我发送的数据,但我遇到了完全相同的错误

在下面找到我的云函数和调用方法:

functions/index.js

exports.addAdminRole = functions.https.onCall((data, context) => {
// get user
return admin.auth().getUserByEmail(data.email).then(user => {
// if not already (admin)
if(user.customClaims && (user.customClaims).admin === true) {
return;
}
// add custom claim (admin)
return admin.auth().setCustomUserClaims(user.uid, {
admin: true
});
}).then(() => {
return {
message: `Bravo : ${data.email} fait partie de l'équipe Admins`
}
}).catch(err => {
return err;
});
});

简化函数:

exports.addAdminRoleTest = functions.https.onCall(data => {
console.log("parse data : "+JSON.parse(data));
return (
JSON.parse(data)
);
});

adminScreen.js

function httpAddAdminRole() {

const initRequest = {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
},
body:JSON.stringify({
email: 'dev@test.com'
})
}

console.log(initRequest);

return fetch('https://us-central1-my-project.cloudfunctions.net/addAdminRole', initRequest)
.catch(err => console.log(err))
.then(res => res.json())
.then(parsedRes => {
console.log(parsedRes);
});
}

最佳答案

最后,这主要是我想念的 json 知识

我的 body 应该包含数据

这是我得出的答案:

functions/index.js

exports.addAdminRole = functions.https.onCall((data, context) => {
const dataParsed = JSON.parse(data);

// get user
return admin.auth().getUserByEmail(dataParsed.email).then(user => {
// if not already (admin)
if(user.customClaims && (user.customClaims).admin === true) {
console.log(dataParsed.email + " is already an Admin");
return;
}
// add custom claim (admin)
return admin.auth().setCustomUserClaims(user.uid, {
admin: true
});
}).then(() => {
return {
message: `Bravo : ${dataParsed.email} is now an Admin`
}
}).catch(err => {
return err;
});
});

adminScreen.js

function httpAddAdminRole(mail) {

const initRequest = {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
},
body:JSON.stringify({
data:JSON.stringify({
email: mail
})
})
}

console.log(initRequest);

return fetch('https://us-central1-my-project.cloudfunctions.net/addAdminRole', initRequest)
.catch(err => console.log(err))
.then(res => res.json())
.then(parsedRes => {
console.log(parsedRes);
});
}

关于react-native - Firebase 云函数调用 : error : Object message : "Bad Request" status : "INVALID_ARGUMENT",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54505171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com