< /li>
[*] Аутентификация: анонимная аутентификация Firebase.
Код: Выделить всё
Auth.auth().currentUserdo {
let functions = Functions.functions(region: "us-central1")
// The "generateRecipe" function name is correct
let result = try await functions.httpsCallable("generateRecipe").call(\["prompt": "test"\])
print("Success: (result.data ?? "No data")")
} catch {
// This catch block receives the 'UNAUTHENTICATED' (Code 16) error
print("Function call failed: (error)")
}
< /code>
server-side node.js Проверка: < /p>
// index.js
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.generateRecipe = functions.https.onCall(async (data, context) = \ > {
// This is the very first check in my function.
// It fails because `context.auth` is undefined.
if (!context.auth) {
console.log("Function rejected. Context.auth is:", context.auth);
throw new functions.https.HttpsError(
'unauthenticated',
'This operation requires authentication.'
);
}
// Logic beyond this point is never reached.
return {
success: true
};
});
< /code>
Я уверен, что это не простая ошибка конфигурации, так как я тщательно проверил и исправил следующее: < /p>
- Проектная инфраструктура: создано несколько проектов Fresh Firebase; обеспечить Firestore находится в собственном режиме и использует базу данных (по умолчанию); Исправлена все начальные блокировщики развертывания (проблемы с двигателем приложений, ошибки GCF-Admin-Robot). < /p>
< /li>
iam & apis: предоставлена учетная запись обслуживания функции как редактора, так и Admin Run Admin Rely; Вручную подтвердили, что все необходимые API (идентификация инструментов, облачный запуск и т. Д.). Исправлены все ошибки в лининге/синтаксисе; Разрешенные контейнеры HealthCheck Неудача ошибок путем правильной установки переменных среды. Использование правильного и недавно загруженного Googleservice-info.plist; completely purged the local environment multiple times (Deleted DerivedData, Simulator reset, rebooted Mac).
Given that all user-configurable aspects appear to be correct, what could possibly cause the Firebase infrastructure to fail to pass a valid auth context to a Каллируемой функции?
Подробнее здесь: https://stackoverflow.com/questions/796 ... setup-unau
Мобильная версия