如何在Firestore数据库中手动将文档添加到集合?

时间:2019-05-14 13:01:03

标签: firebase google-cloud-firestore firebase-console

我在Firestore中有一个非常简单的数据库(地理名称,lat和Lon)。该数据库非常静态,我只需要偶尔添加或删除一条记录(文档)。 如何将记录与其他文档相同的字段手动添加到集合中?当我按“添加文档”时,控制台会要求我输入每个字段(请参见屏幕截图)。 enter image description here

2 个答案:

答案 0 :(得分:2)

以下HTML页面将允许您写入spots Firestore集合。

您当然需要调整字段以及Firebase配置。

如果您想进行身份验证,只需添加两个额外的字段,例如用户名和密码,并使用signInWithEmailAndPassword()方法。 (如果需要,我可以改写页面。)

例如,您可以利用SSL证书在Firebase托管中托管此页面。或者,您可以简单地将其保存在计算机上,然后使用浏览器打开它(在这种情况下不是HTTPS,而是一种很好的测试方法)。

<!DOCTYPE html>
<html>
  <head>
    <title>Firebase Form</title>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
    <!-- Firebase App (the core Firebase SDK) is always required and must be listed first -->
    <script src="https://www.gstatic.com/firebasejs/6.0.2/firebase-app.js"></script>

    <!-- Add Firebase products that you want to use -->
    <script src="https://www.gstatic.com/firebasejs/6.0.2/firebase-firestore.js"></script>
    <script src="https://www.gstatic.com/firebasejs/6.0.2/firebase-auth.js"></script>
  </head>

  <body>
    <div>
      <p>Name:</p>

      <input type="text" placeholder="Name" id="name" />

      <p>City:</p>

      <input type="text" placeholder="City" id="city" />

      <br /><br />
      <input type="submit" value="submit" class="submit" id="submit" />
    </div>

    <script>
      $(document).ready(function() {
        // Initialize Firebase
        var config = {
          apiKey: 'xxxxxxxxxxxxx',
          authDomain: 'xxxxxxxxxxxxx',
          databaseURL: 'xxxxxxxxxxxxx',
          projectId: 'xxxxxxxxxxxxx'
        };

        firebase.initializeApp(config);

        var database = firebase.firestore();

        $('#submit').on('click', function() {
          var nameValue = $('#name').val();
          var cityValue = $('#city').val();

          var dataObject = {
            name: nameValue,
            city: cityValue
          };

          database.collection('spots').add(dataObject);
        });
      });
    </script>
  </body>
</html>

答案 1 :(得分:0)

不能,您必须编写或使用工具来做到这一点。