init
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
import config from "../config.ts";
|
||||
import admin from "firebase-admin";
|
||||
|
||||
if (config.FIREBASE_ADMIN_SDK_CONFIG) {
|
||||
admin.initializeApp({
|
||||
credential: admin.credential.cert(
|
||||
JSON.parse(config.FIREBASE_ADMIN_SDK_CONFIG),
|
||||
),
|
||||
databaseURL: config.FIREBASE_DATABASE_URL,
|
||||
});
|
||||
}
|
||||
|
||||
export async function validateUserToken(uid: string, token: string) {
|
||||
if (!config.FIREBASE_ADMIN_SDK_CONFIG) {
|
||||
return undefined;
|
||||
}
|
||||
if (!token) {
|
||||
return undefined;
|
||||
}
|
||||
try {
|
||||
const decoded = await admin.auth().verifyIdToken(token);
|
||||
if (uid !== decoded.uid) {
|
||||
// Valid but for wrong user
|
||||
return undefined;
|
||||
}
|
||||
return decoded;
|
||||
} catch (e) {
|
||||
// Promise rejects if verification failed
|
||||
console.log(e);
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
export async function writeData(key: string, value: string) {
|
||||
if (!config.FIREBASE_ADMIN_SDK_CONFIG) {
|
||||
return;
|
||||
}
|
||||
await admin.database().ref(key).set(value);
|
||||
}
|
||||
|
||||
export async function getUserByEmail(email: string) {
|
||||
if (!config.FIREBASE_ADMIN_SDK_CONFIG) {
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
return await admin.auth().getUserByEmail(email);
|
||||
} catch (e: any) {
|
||||
console.log(email, e.message);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
export async function getUser(uid: string) {
|
||||
if (!config.FIREBASE_ADMIN_SDK_CONFIG) {
|
||||
return null;
|
||||
}
|
||||
return await admin.auth().getUser(uid);
|
||||
}
|
||||
|
||||
export async function getUserEmail(uid: string) {
|
||||
if (!config.FIREBASE_ADMIN_SDK_CONFIG) {
|
||||
return null;
|
||||
}
|
||||
const user = await admin.auth().getUser(uid);
|
||||
return user.email;
|
||||
}
|
||||
|
||||
export async function deleteUser(uid: string) {
|
||||
if (!config.FIREBASE_ADMIN_SDK_CONFIG) {
|
||||
return null;
|
||||
}
|
||||
return admin.auth().deleteUser(uid);
|
||||
}
|
||||
Reference in New Issue
Block a user