Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过javascript更改firestore中的值_Javascript_Firebase_Google Cloud Firestore - Fatal编程技术网

通过javascript更改firestore中的值

通过javascript更改firestore中的值,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,我想通过脚本在firestore中设置属性。我有一个小的登录应用程序。当用户登录时,如果票证为false,则票证应更改为true,并应将该状态通知第一个用户。 我如何才能给firestore提供来自特定用户的变量为真的信息,以及它应该在firestore中设置为真的信息?提前谢谢你 function signIn() { var userEmail = document.getElementById("email_field").value; var userPass = documen

我想通过脚本在firestore中设置属性。我有一个小的登录应用程序。当用户登录时,如果票证为false,则票证应更改为true,并应将该状态通知第一个用户。 我如何才能给firestore提供来自特定用户的变量为真的信息,以及它应该在firestore中设置为真的信息?提前谢谢你

function signIn() {
  var userEmail = document.getElementById("email_field").value;
  var userPass = document.getElementById("password_field").value;


  const promise = auth.signInWithEmailAndPassword(userEmail, userPass);
  promise.catch(e => alert(e.message));
}

firebase.auth().onAuthStateChanged(async function (user) {
    if (user) {
      // User is signed in.
      document.getElementById("user_div").style.display = "block";
      document.getElementById("login_div").style.display = "none";
      document.getElementById("login_div").style.visibility = "hidden";

      var docRef = await db.collection("users").doc(user.uid);

      // Get the data from the user
      await docRef.get().then(async function (doc) {
        if (doc.exists) {

          ticket = await doc.data().ticket;
          if(!ticket) {
                // how to set the ticket = true if it is false
          }

        } else {

        }
      }).catch(function (error) {
        console.log("Error getting document:", error);
      });




    } else {

      ...

    }
  });

您可以使用
docRef
更新用户文档

提供以下更新文档的示例:

let setWithOptions = cityRef.set({
  capital: true
}, {merge: true});
应用于您的用例,它将如下所示:

docRef.set({
  ticket: true
}, {merge: true});

传递{merge:true}意味着原始文档不会被覆盖,而只会替换修改后的值。

代码中有三个
wait
和一个
async
关键字,但这些关键字似乎都没有意义。请仔细研究
async
wait
所做的事情,否则您将自食其果。您[将数据写入Firestore()]有什么问题?