Функции облака Firebase возвращают «внутреннюю» ошибку без журналов после перемещения проекта в React NativeJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Функции облака Firebase возвращают «внутреннюю» ошибку без журналов после перемещения проекта в React Native

Сообщение Anonymous »

У меня есть нативный проект React с использованием Firebase, и я сталкиваюсь с проблемой с функциями Google Cloud. Похоже, что запрос не достигает функции, и ничто не появляется в Google Cloud Explorer. РЕЗУЛЬТАТ.// firebaseConfig.js
import { initializeApp } from "firebase/app";
import { getFirestore } from "firebase/firestore";
import { getStorage } from "firebase/storage";
import { getFunctions } from "firebase/functions";
import { initializeAuth, getReactNativePersistence } from "firebase/auth";
import ReactNativeAsyncStorage from "@react-native-async-storage/async-storage";

const firebaseConfig = {
...
};

const app = initializeApp(firebaseConfig);

const auth = initializeAuth(app, {
persistence: getReactNativePersistence(ReactNativeAsyncStorage),
});

const db = getFirestore(app);
const storage = getStorage(app);
const functions = getFunctions(app, 'us-central1');

export { app, auth, db, storage, functions };
< /code>
Облачная функция: < /p>
const { setGlobalOptions } = require("firebase-functions");
const { onCall, HttpsError } = require("firebase-functions/v2/https");
const admin = require("firebase-admin");

admin.initializeApp();
setGlobalOptions({ maxInstances: 10 });

exports.setUserRole = onCall(async (request) => {
const { uid, role } = request.data;

if (!uid) {
throw new HttpsError("invalid-argument", "UID cannot be empty.");
}

if (!request.auth || request.auth.token.role !== "admin") {
throw new HttpsError("permission-denied", "Unauthorized action.");
}

if (!["admin", "user"].includes(role)) {
throw new HttpsError("invalid-argument", "Invalid role.");
}

try {
await admin.auth().setCustomUserClaims(uid, { role });
return { success: true };
} catch (error) {
console.error("Role update error:", error);
throw error;
}
});
< /code>
rn httpcall: < /p>
import { functions } from '../config/firebaseConfig';
import { httpsCallable } from 'firebase/functions';

const handleChangeRole = async (userId: string, currentRole: string) => {
try {
const setUserRole = httpsCallable(functions, 'setUserRole');
await setUserRole({ uid: "MdCccwMtwfOJmgbm5mVvbOwFOJD3", role: "admin" });

Alert.alert('Success', `Role updated to "admin".`);
} catch (error) {
console.error('Role change error:', error);
Alert.alert('Error', 'Role could not be changed.');
}
};
< /code>
Что может привести к тому, что функции Firebase Cloud возвращают «внутреннюю» ошибку, не показывая каких -либо журналов в новом проекте Firebase, и как я могу отлаживать или исправить это? Из моего приложения React Native я называю его с HttpsCallable («setUserrole») и прохожу допустимую UID и роль. Я ожидал, что он обновит пользователя и вернет {успех: true}, но вместо этого я всегда получаю внутреннюю ошибку. Странная вещь, в том, что в облачном журнале нет ничего, поэтому кажется, что запрос даже не достигает функции.

Подробнее здесь: https://stackoverflow.com/questions/797 ... ving-proje
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»