【问题标题】:Selecting DocumentID when importing data from google sheets API to Firestore将数据从 google sheet API 导入 Firestore 时选择 DocumentID
【发布时间】:2020-07-22 12:09:13
【问题描述】:

我想将数据从 google sheet API 发送到 Firestore。我已经实现了这个目标,但我想选择我自己的 documentID 而没有生成的。

我想将数据发送到特定的 userID,因此我计划在 Google 表格电子表格中输入数据,并将该数据存储在 Firestore 中的该 userID 下。 p>

在我的电子表格中,我有一个名为 userID 的字段。有没有办法修改我的脚本代码,以便我可以使用 userID 作为 documentID

脚本代码可以看这里:

![图像2][2]

var firestore = FirestoreApp.getFirestore (email, key, projectId);  
  // get document data from ther spreadsheet
   var ss = SpreadsheetApp.getActiveSpreadsheet();
   var sheetname = "Sheet1";
   var sheet = ss.getSheetByName(sheetname); 


   // get the last row and column in order to define range
   var sheetLR = sheet.getLastRow(); // get the last row
   var sheetLC = sheet.getLastColumn(); // get the last column

   var dataSR = 2; // the first row of data
   // define the data range
   var sourceRange = sheet.getRange(2,1,sheetLR-dataSR+1,sheetLC);


   // get the data
   var sourceData = sourceRange.getValues();
   // get the number of length of the object in order to establish a       loop value
   var sourceLen = sourceData.length;

  // Loop through the rows
   for (var i=0;i<sourceLen;i++){
     if(sourceData[i][1] !== '') {
       var data = {};
       data.userid = sourceData[i][0];
       data.store = sourceData[i][1];
       data.price = sourceData[i][2];
       data.department = sourceData[i][3];
       data.date = sourceData[i][4];
   
  
       var userId = sourceData[i][0]
       firestore.createDocument("User/" + userId + "/Receipts", data);
  
   

     }

  }
}

【问题讨论】:

  • 您好,欢迎来到 Stack Overflow。请在您的问题中包含您的代码作为文本,以便我们复制和调整它。谢谢。
  • 请编辑问题并将代码文本复制到问题本身而不是显示图像。带有文本的图像可能难以阅读、复制和搜索,并且使用屏幕阅读器的人无法访问。

标签: firebase api google-cloud-firestore google-sheets-api


【解决方案1】:

我假设您使用 FirestoreGoogleAppsScript 图书馆,既然你这样做了firestore.createDocument()

如库文档中所述,您可以通过传递文档的整个路径(即集合 + 由斜线分隔的 ID)来指定新 Firestore 文档的 ID,如下所示:

// ...
var userId = sourceData[i][0]
firestore.createDocument("User/" + userId, data);

【讨论】:

  • 行得通!谢谢你。但是,它只需要电子表格中的一行,如果我有第二行包含相同用户 ID 的新数据,则它不会显示在 Firestore 中。有没有办法可以在同一个 UserID 下将多行数据从电子表格发送到 Firestore?
  • 您在特定集合中只能拥有一个具有特定 ID 的文档。您也许可以使用子集合,例如firestore.createDocument("User/" + userId + "/documents", data);.
猜你喜欢
  • 1970-01-01
  • 2017-05-08
  • 1970-01-01
  • 1970-01-01
  • 2022-06-13
  • 2016-10-08
  • 2018-04-30
  • 2020-05-27
  • 1970-01-01
相关资源
最近更新 更多