После просмотра документов Firebase и JS SDK я решил, что это невозможно без использования / переопределения частных API.
Решением, которое я использовал, является репликация кода JS SDK , но с указанием URL-адреса, который идет через хостинг Firebase , поэтому он находится в том же домене, что и мое приложение.
Та же функция облака, тот же код приложения, без предварительной проверки CORS ??
- Создание нормальной функции вызываемого облака в Firebase
- Добавить переписать к
firebase.json
{
...
"hosting": {
...
"rewrites": [
{
"source": "myFunction",
"function": "myFunction"
}
]
}
}
- Вместо того, чтобы звонить по номеру
firebase.functions().httpsCallable('myFunction')
, отправьте POST-запрос на ваш новый URL-адрес
const token = await firebase.auth().currentUser.getIdToken()
const response = await fetch(
'https://myapp.web.app/myFunction',
{
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer ' + token
},
method: 'post',
body: JSON.stringify({ data })
}
)
Теперь URL-адрес находится в вашем домене, так что никаких проблем с CORS