首页 > 解决方案 > Firestore - 如何使用 DocumentReference 指向另一个项目的文档?

问题描述

据我所知firebase.firestore.DocumentReference<T>可以指向当前项目中的一个文档。是否可以指向另一个项目的文档?

拥有这样的能力是合理的,因为 Firebase 已经写了一个文档来分享如何在一个应用程序中使用多个项目。

标签: firebasegoogle-cloud-firestore

解决方案


是否可以指向另一个项目的文档?

对的,这是可能的。以下代码显示了如何使用一个主要项目的 Firestore 数据库中的值来查询辅助项目的 Firestore 数据库。

  var primaryAppConfig = {
    apiKey: 'xxxx',
    authDomain: 'xxxx',
    projectId: 'xxxx'
  };

  var secondaryAppConfig = {
    apiKey: 'xxxx',
    authDomain: 'xxxx',
    projectId: 'xxxx'
  };

  // Initialize  primary app
  var primary = firebase.initializeApp(primaryAppConfig, 'primary');

  // Initialize a secondary app with a different config
  var secondary = firebase.initializeApp(secondaryAppConfig, 'secondary');

  var db1 = primary.firestore();
  var db2 = secondary.firestore();

  const db2DocRef = db2.collection('col1').doc('doc1');

  let getDoc = db2DocRef
    .get()
    .then(doc => {
      const valToUse = doc.data().value;

      const db1DocRef = db1.collection('col1').doc(valToUse);
      return db1DocRef.get();
    })
    .then(doc => {
      console.log(doc.data());
    });

有这样的能力合理吗?

我想是的,因为正如您所提到的,Firebase 提供了这种可能性。


推荐阅读