Firebase,两个项目相同的DB?

时间:2017-12-01 23:46:22

标签: javascript firebase

让我解释一下情况(借口我的英语,我会尽我所能):

我的Firebase控制台中有两个Firebase Web项目:coretechtest-ce207和agon-plugin

coretechtest-ce207是主要应用程序,而agon-plugin是需要连接到coretechtest-ce207的auth和数据库的辅助应用程序。据我所知,我不能在同一个项目中托管两个应用程序,这就是我为什么要分离项目的原因。主要工作正常,我可以做我想要的一切(注册,数据库等),但我需要在同一个auth和DB上的主要和第二个。 agon-plugin(secondary one)基于FriendlyChat应用程序制作,并直接连接到托管应用程序的服务器。 例如:

// Initializes FriendlyChat.
function FriendlyChat() {
    this.initFirebase();

}

// Sets up shortcuts to Firebase features and initiate firebase auth.
FriendlyChat.prototype.initFirebase = async function() {
    // Shortcuts to Firebase SDK features.
    this.auth = firebase.auth();
    this.database = firebase.database();
    this.storage = firebase.storage();
    // Initiates Firebase auth and listen to auth state changes.
    await this.auth.onAuthStateChanged(this.onAuthStateChanged.bind(this));   
};

如你所见,没有必要把

apiKey: "AIzaSyAfGm_ILVdfsd--Fw7aascc8tAB73q__Bbko",
authDomain: "coretechtest-ce207.firebaseapp.com",
databaseURL: "https://coretechtest-ce207.firebaseio.com",
projectId: "coretechtest-ce207",
storageBucket: "coretechtest-ce207.appspot.com",
messagingSenderId: "994718782"

我尝试使用这些参数替换它,所以它将是

    FriendlyChat.prototype.initFirebase = async function() {
// Shortcuts to Firebase SDK features.

    this.auth = 'coretechtest-ce207.firebaseapp.com';
    this.database = 'https://coretechtest-ce207.firebaseio.com';
    this.storage = 'coretechtest-ce207.appspot.com';

// Initiates Firebase auth and listen to auth state changes.
   await this.auth.onAuthStateChanged(this.onAuthStateChanged.bind(this));   
};

但那里没有运气,你能告诉我我做错了什么吗?我认为替换它将连接到我的主项目,但它没有... = / 我希望你能理解我想说的话!

谢谢!

2 个答案:

答案 0 :(得分:0)

对网络不是100%肯定,但它应该类似于Android:

  • 转到控制台面板
  • 在左上角单击" Project OverView"
  • 旁边的滚轮
  • 在弹出窗口中单击“项目设置”
  • 在设置页面中向下滚动一下,你会看到一个蓝色的"添加应用程序" (或类似的东西)按钮。

然后将您在第一个应用上所做的一切都做到第二个应用

最重要的是,不要在网上发布你的api密钥!

答案 1 :(得分:0)

如果您使用的是Web并希望托管2个使用相同数据库的Web应用程序,则有两种选择。 免费:将Web应用程序与数据库关联的唯一内容是Firebase配置中的api键,用于在Web应用程序中初始化Firebase。如果2个应用程序使用相同的设置,则它们可以共享相同的数据库。如果您想免费托管两个带有Firebase的Web应用程序-每个项目只能免费托管1个应用程序。但是,您可以轻松创建第二个新项目,并将第二个Web应用程序托管在该新项目中。但是,请勿在应用程序内使用该新项目中的新Web API设置。而是使用原始项目中的相同内容。如果2个项目中的2个应用使用相同的API密钥配置,则可以使用相同的数据库。 (仅在从第二个应用程序的cli执行“ firebase init”时选择Firebase托管)

付费选项:如果您转到Firebase控制台中的“托管”页面,然后向下滚动至底部,您将看到一张卡,可在一个项目中托管多个应用程序。它要求您更新按需付费的付费计划。可能会或可能不会花费您的钱。