Ошибка типа: getCurves не является функцией

# #reactjs #firebase #firebase-authentication #firebase-admin #google-admin-sdk

Вопрос:

Я пытаюсь предоставить пользовательские требования определенным пользователям для моего веб-приложения react, и я не смог преодолеть эту ошибку.

Ошибка:

 TypeError: getCurves is not a function
./node_modules/jose/lib/registry/ec_curves.js
  2 | 
  3 | const curves = new Set()
  4 | 
> 5 | if (getCurves().includes('prime256v1')) {
  6 |   curves.add('P-256')
  7 | }
  8 | 
 

и это функция функция, которая запускает ее

 admin.auth().setCustomUserClaims(uid, {
  admin: true,
})
 

вот как выглядит мой sdk администратора

 import * as admin from 'firebase-admin';

import serviceAccount from './Servicekey.json';

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: <databaseURL>
});

export default admin;
 

Я использовал для обновления профиля пользователя (пароль, адрес электронной почты) аналогичным образом из своей системы, но также не могу этого сделать.

Комментарии:

1. Вы уверены, что это исходит от администратора Firebase ?

2. у меня никогда раньше не было такой ошибки в моем веб-приложении … именно после использования firebase-admin я столкнулся с этой ошибкой.

3. Веб-приложение? Где вы пользуетесь firebase-admin ? Вы не должны использовать его на интерфейсе. Который имеет права администратора, не подчиняется правилам безопасности и имеет полный доступ к вашему проекту Firebase. Вы должны использовать это только в защищенных env, таких как серверные или облачные функции. Он не должен использоваться во внешнем интерфейсе.

4. да… я просто тестирую или в основном даю пользователю только один токен администратора. у меня нет намерений публиковать его для всей базы пользователей.

5. Я бы рекомендовал использовать проект узла и не реагировать на выполнение s, или вы можете попробовать эмулятор функций Firebase локально.

Ответ №1:

В моем случае я использовал getToken() из next-auth

Ответ №2:

Я знаю, что прошло пару месяцев, но я просто потратил несколько дней на то, чтобы разобраться в этом, и в итоге вернулся к более старой версии firebase-admin. Попробуйте вернуться к версии 9.0.0.

Я вернулся, перейдя в файл package.json и изменив версию firebase-admin на 9.0.0, а затем запустив «npm i».