gpt4 book ai didi

javascript - 如何在 Firebase 中将云功能与应用程序一起使用

转载 作者:行者123 更新时间:2023-12-03 00:16:53 26 4
gpt4 key购买 nike

我编写了一个验证 idToken 的函数。我在 localHost 中的应用程序和在 Firebase 中部署的功能正常工作。但是,当我在 Firebase 中进行 yarn build 和部署 React 应用程序时,它不起作用。当我单击调用该函数的组件时,屏幕上出现的是构建文件夹的索引文件的 html。在 package.json 文件中,我使用 Firebase 中的函数路径编写了代理,并在组件中使用 axios.post (...) 调用该函数。我应该修复一些东西以使其在部署后立即运行吗?

在我的 src 的 package.json 中,我有:

"proxy": "https://us-central1-teste.cloudfunctions.net/",

在我的组件中,我有:

const user = yield auth.currentUser
const {ra} = user
const datas = yield new Promise(resolve => {
resolve(axios.post('/auth?token='+ra))
})
if (datas.data === user.uid){
...
}else{
...
}

在我的云功能中,我有:

const functions = require('firebase-functions')
const admin = require('firebase-admin')
admin.initializeApp(functions.config().firebase)

exports.auth = functions.https.onRequest((request, response) => {
const idToken = request.query.token
admin.auth().verifyIdToken(idToken)
.then( decodedToken => {
response.send(decodedToken.uid)
return
}).catch( error => {
response.send(error.errorInfo.code)
return
})
})

最佳答案

您的问题是 CORS!尝试这样做:

在您的组件中:

const data = yield new Promise(resolve => {
resolve(axios.post('https://us-central1-teste.cloudfunctions.net/auth?token='+ra))
})

在你的函数中:

const functions = require('firebase-functions')
const admin = require('firebase-admin')
admin.initializeApp(functions.config().firebase)

exports.auth = functions.https.onRequest((request, response) => {
const idToken = request.query.token
admin.auth().verifyIdToken(idToken)
.then( decodedToken => {
response.header("Access-Control-Allow-Origin", "*")
response.send(decodedToken.uid)
return
}).catch( error => {
response.send(error.errorInfo.code)
return
})
})

如果您只想限制对您的系统的访问,请将 * 更改为 'https//:(system's_name)'

关于javascript - 如何在 Firebase 中将云功能与应用程序一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54497299/

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