繁体   English   中英

模块化 Firebase 管理数据库

[英]Modular Firebase Admin Database

是否有或将有模块化 Firebase 管理数据库功能,即 update()、get()、set()、ref() 等? 也许有解决方法?

否则我将不得不对相同的函数进行两次编码,例如服务器(管理员)上的“craftBuilding()”和客户端上的一个。

试着:

import { getDatabase, ref, set, update, child, onChildAdded } from 'firebase-admin/database';

错误:

请求的模块“firebase-admin/database”不提供名为“ref”的导出

我希望能够像在客户端一样使用 firebase rtdb 函数,而不是对相同的函数进行两次编码。

由于 Firebase Admin 是命名空间的,所以ref在您初始化后可用。

import { ref, update, set } from '@path/yourAdminFunctions';

var admin = require("firebase-admin");

// Initialize Admin SDK

var db = admin.database();
export db;

const dbReference = ref("your reference here");
const IDSnapFromQuery = query(dbReference, ["ID", "==", 10]);

您可以通过在单独的文件中为您需要的操作创建函数来自己对其进行模块化:

import { db } from '@path/yourMainFile';

export function ref(databaseReference) {
  return db.ref(databaseReference);
};

// for query pass in the db.ref instance you're using
export function query(dbReference, queryParams) {
  // identify what query params are e.g. ID == 10 in this example
  // note that you will have to code the queryParams filter, I have left it out

  dbReference
    .orderByChild('ID')
    .equalTo(10).on('child_added',
  (snapshot) => {
    return snapshot;
  });
}

// do the same for update, set etc

您可以在admin SDK 文档中阅读更多内容。

管理员 SDK 还不是完全模块化的,但有一些 function 这样的getDatabase()开始V10

import { getDatabase } from 'firebase-admin/database';
// TODO: Initialize Admin SDK

const db = getDatabase();

// usage
const ref = db.ref('../../..')

我建议使用最新版本的 SDK 以及现有语法,但使用更新的模块化导入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM