将 firebase-admin 与 Deno 一起使用的可能方法

possible way to use firebase-admin with Deno

由于 Deno 刚刚在几天前发布了稳定版本,是否有可能将 firebase-admin 与 Deno 一起使用?

在此 post 时,Google 文档和 Firebase 存储库均不支持 Deno。

https://firebase.google.com/docs/admin/setup

https://github.com/firebase?q=firebase-admin

也许他们已经在努力了,我不知道。您可以联系他们并做一个 feature request 并询问您能提供什么帮助。

正如@Evandro Pomatti 所指出的,firebase 团队没有官方支持将其作为原生 Deno 模块。但是,NPM 模块可以在 Deno 代码库中使用,那么为什么不直接使用现有的 firebase-admin 代码库呢?

import { createRequire } from 'https://deno.land/std/node/module.ts';

const require = createRequire(import.meta.url);
const admin = require('firebase-admin');

const text = await Deno.readTextFile('path/to/serviceAccountKey.json');
const adminKey = JSON.parse(text);

admin.initializeApp({
    credential: admin.credential.cert(adminKey),
    databaseURL: 'https://databaseName.firebaseio.com'
});

const db = admin.database();
const ref = db.ref('restricted_access/secret_document');
ref.once('value', function(snapshot) {
    console.log(snapshot.val());
});

由于默认情况下 Deno 是一个安全的运行时,读取文件需要使用 --allow-read 命令的明确权限

deno run --allow-read=node_modules myfile.ts

似乎通过一些 polyfill 支持 Firebase。 https://deno.com/deploy/docs/tutorial-firebase

但是您可能会遇到障碍。如果这对你有用,请告诉我。