Вы не показываете весь код здесь (например, как вы инициализировали Firebase Admin SDK для создания admin
). Поэтому я предполагаю, что вы использовали учетные данные проекта по умолчанию для его инициализации следующим образом:
import * as admin from 'firebase-admin'
admin.initializeApp()
Этого недостаточно, чтобы иметь возможность использовать getSignedUrl при обращении к административному SDK для использования API-интерфейсов облачного хранилища. Если вы хотите использовать getSignedUrl, вам нужно будет предоставить учетные данные для выделенной учетной записи службы, которую вы создаете в консоли.
Предполагая, что вы помещаете эти учетные данные в файл yourServiceAccount.json в своей папке функций, вы должны инициализировать административный SDK с такими учетными данными, такими как:
import * as serviceAccount from 'yourServiceAccount.json';
const adminConfig = JSON.parse(process.env.FIREBASE_CONFIG)
adminConfig.credential = admin.credential.cert(<any>serviceAccount)
admin.initializeApp(adminConfig);
Обратите внимание, что это просто берет конфигурацию проекта по умолчанию из FIREBASE_CONFIG и добавляет к ним учетную запись службы.
Чтобы получить импорт файла JSON, вам также понадобится файл (называемый typings.d.ts):
declare module "*.json" {
const value: any;
export default value;
}