我写了一个函数来检查电子邮件在集合中是否唯一。问题是,我有一个GET请求挂接到此函数上,但是该函数的req.query始终为空。
我的请求如下:us-central1/users?email=mymail@test.com
我尝试在没有Express的情况下执行此操作,然后我添加了Express,也会发生相同的问题。
完整代码:(使用npm run deploy
在本地部署)
const cors = require('cors');
const app = require('express')();
app.use(cors({ origin: true }));
initializeApp();
const fireStore = firestore();
const checkUserName = (req: any, res: any) => {
if (req.method !== 'GET') {
return res.status(405).send(`${req.method} is not allowed`);
}
console.log(JSON.stringify(req.query));
if (!req.query.hasOwnProperty('email')) {
return res.status(400).send('Email not provided');
}
const email = req.query.email;
if (email.trim().length === 0) {
return res.status(400).send('Invalid email address');
}
fireStore
.collection('users')
.doc(email)
.get()
.then((doc: any) => {
return res.status(200).send(doc);
})
.catch((error: any) => console.log(error));
};
app.get('/', checkUserName);
exports.users = functions.https.onRequest(app);