如何从 Google Sheets 访问 Cloud Firestore?

Tus*_*Rai 6 google-sheets google-apps-script firebase google-cloud-firestore

我试图在FirestoreGoogleAppsScript示例的帮助下从 Google 工作表访问 Cloud Firestore 数据库,但如第 5 点所述,我已经下载了文件,但没有找到更新client_email,private_keyproject_id项目的位置。所以请指导我继续前进。

当您按“创建”时,您的浏览器将下载一个.json包含您的私钥 ( private_key)、服务帐户电子邮件 ( client_email) 和项目 ID ( project_id) 的文件。将这些值复制到您的 Google Apps 脚本中 — 您需要它们来通过 Firestore 进行身份验证。

带有演示 Code.gs

function myFunction() {
  projectid: "xxx";
  key: "-----BEGIN PRIVATE KEY-----\nPrivateKeyHere\n-----END PRIVATE KEY-----\n";
  email: "xxx@xxx.iam.gserviceaccount.com";
  
  var firestore = FirestoreApp.getFirestore(email, key, projectId);
}
Run Code Online (Sandbox Code Playgroud)

错误

ReferenceError: "email" is not defined. (line 7, file "Code")
Run Code Online (Sandbox Code Playgroud)

Ren*_*nec 7

您必须执行以下操作,例如在获取集合的简单函数中:

function fecthFirstCollectionDocs() {

  var email = "xxxxxx@yyyyyyy.iam.gserviceaccount.com";
  var key = "-----BEGIN PRIVATE KEY-----\your key here\n-----END PRIVATE KEY-----\n";
  var projectId = "zzzzzzzzz";

  var firestore = FirestoreApp.getFirestore(email, key, projectId);

  const allDocuments = firestore.query("FirstCollection").execute();
  Logger.log(JSON.parse(allDocuments));

}
Run Code Online (Sandbox Code Playgroud)

的值key是通过创建服务帐户获得的,如库文档中所述:https : //github.com/grahamearley/FirestoreGoogleAppsScript#creating-a-service-account。这很容易,只需按照说明操作即可。

你必须只在部分之间复制-----BEGIN PRIVATE KEY----------END PRIVATE KEY-----\n.json文件。


根据您 4 月 9 日的评论进行编辑:

为了解决

ReferenceError: "email" is not defined. (line 7, file "Code") 
Run Code Online (Sandbox Code Playgroud)

错误您应该正确声明您传递给该getFirestore()方法的变量,如我的答案代码所示,如​​下所示:

而不是做

  projectid: "fir-79c39";
Run Code Online (Sandbox Code Playgroud)

你应该做

  var projectid = "fir-79c39";
Run Code Online (Sandbox Code Playgroud)

您声明了一个名为projectid您在getFirestore()方法中使用的变量。同为keyemail