possible way to use firebase-admin with Deno
Asked Answered
P

3

6

Since Deno has been released stable build just a few days ago, Is there a possible way to use firebase-admin with Deno?

Pneumoconiosis answered 17/5, 2020 at 14:30 Comment(3)
check this repo, no guarantee that its working since its 10 months old: github.com/denoserverless/firebase-auth-rest, it might just give you idea how to start.Obscure
This question should be directed to the Firebase community.Harrier
deno.land/x/[email protected] Try this.Bellis
H
6

At the time of this post, both Google documentation and Firebase repositories have no Deno support.

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

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

Maybe they are already working on it, I can't know. You can reach out to them and do a feature request and ask how you can help.

Harrier answered 17/5, 2020 at 15:0 Comment(0)
H
2

As @Evandro Pomatti pointed out, there is no official support from the firebase team as a native Deno module. However, NPM modules can be used within a Deno codebase, so why not just use the existing firebase-admin codebase?

see How to use npm module in DENO?

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());
});

Since Deno is a secure runtime by default, reading files require explicit permissions using the --allow-read command

deno run --allow-read=node_modules myfile.ts
Hail answered 16/3, 2021 at 5:57 Comment(2)
Does this work ?Hepburn
I tried doing something similar using Deno, unfortunately it errors with a crypto error. See github.com/ben-xD/push/pull/22/commits/…. Switched to Node in that MR.Cantrip
H
2

Looks like Firebase is supported via few polyfills. https://deno.com/deploy/docs/tutorial-firebase

But you might hit a roadblock. Let me if that works for you.

Hepburn answered 28/3, 2022 at 11:13 Comment(1)
That’s firebase 8x, but they’re now on 9x and it has better ES module support. Might be a better choice and might “just work”.Guilder

© 2022 - 2024 — McMap. All rights reserved.