Я пытаюсь реализовать функцию «Войти с помощью Spotify» для своего приложения для реагирования. Я пытаюсь следить за блогом это, но не могу использовать
firebase.auth().createCustomToken(uid)
как я получаю ошибку
.createCustomToken is not a function
Я также пытался использовать пакет firebase-admin, но столкнулся с
Can't resolve util in /node_modules/@google_cloud/common/build/src
Это то, что я пытался сделать до сих пор. Я никогда раньше не использовал firebase. Любая помощь будет оценена по достоинству.
import {getAuth} from 'firebase-admin/auth';
import { initializeApp } from 'firebase-admin/app';
import admin from 'firebase-admin';
var serviceAccount = require('./service-account.json')
const spotifyApi = new SpotifyWebApi();
admin.initializeApp({
credential: admin.credential.cert(serviceAccount)
})
let uid= 5;
getAuth().createCustomToken(uid).then(function(customToken) {
console.info(customToken);
});
Обновил пост. Я пытался использовать firebase-admin в том же файле, но из того, что я прочитал, он должен быть на стороне сервера, верно? Не знаю, как это использовать, когда я получаю здесь токен доступа к Spotify.
Вы используете getAuth()
из клиентского SDK Firebase, и у него нет метода createCustomToken()
. А вы пробовали import { getAuth } from "firebase-admin/auth"
? Вам также необходимо import { initializeApp } from 'firebase-admin/app'
и инициализировать Admin SDK. Вы можете просто удалить клиентский SDK отсюда "firebase/*"
импорт
Сделал это, но все еще есть ошибка «util». Сейчас я обновлю код, чтобы вы видели, что именно я сейчас делаю. Ошибка в консоли: "Не удается найти модуль "fs""
Для инициализации Admin SDK вам понадобится сервисный аккаунт (или АЦП). FirebaseConfig предназначен для клиентского SDK. Можете ли вы попробовать инициализировать Admin SDK с учетной записью службы, как в файле документация.
Обновлен код, который теперь использует учетную запись службы. Ошибки util и fs остаются
Вы случайно не пытаетесь использовать Firebase Admin SDK в клиентском веб-приложении (React/Vue)? Он должен использоваться только на стороне сервера. Вы создаете собственный токен на стороне сервера (облачная функция или что-то в этом роде) и отправляете его обратно клиенту, а затем используете signInWithCustomToken()
Да, наверное, поэтому firebase-admin не работает. Я пытался получить авторизацию postify accesstoken, а затем пытался создать токен firebase в том же файле.
Сообщению в блоге, за которым вы следите, уже несколько лет, и последние версии Firebase SDK для JavaScript перешли на другой синтаксис (чтобы инструменты сборки могли автоматически исключать неиспользуемые части SDK из вашего пакета приложений).
Что было раньше:
firebase.auth().createCustomToken(uid)...
Теперь выполняется с:
createCustomToken(getAuth(), uid)...
Чтобы узнать больше об этом, я рекомендую также проверить файл руководство по обновлению для нового v9 SDK.
Обновление: поскольку Dharmaraj прокомментировал нижеcreateCustomToken
по-прежнему является методом объекта аутентификации.
Возможно, я пропустил какое-либо недавнее обновление, но createCustomToken
по-прежнему кажется методом экземпляра аутентификации администратора Firebase, а не функцией, экспортированной из SDK аутентификации.
Да, я все еще не могу использовать createCustomToken здесь
Ах... спасибо Дхармарадж. ? Я думал, что все прежние методы теперь являются функциями верхнего уровня и в модульных Admin SDK.
Можете ли вы поделиться своим полным кодом, чтобы мы также могли видеть, как вы импортируете эти функции? А также ваша
firebase-admin
версия?