- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在尝试将我的 firestore 数据库中文档的值更新为 1。搜索一段时间后,我发现了 FieldValue.increment(1)。我的目标是拥有一个包含 2 个字段(主持人/侦察员)的表单,我将在这些字段上输入需要增加主持人或侦察员值(value)的人的姓名。这是我的 vue 组件的样子
<template>
<div class="add-wave">
<h3>Add Wave</h3>
<div class="row">
<form @click.prevent="addwave()" class="col s12">
<div class="row">
<div class="input-field col s12">
<input type="text" v-model="host" />
<label class="active">Host</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input type="text" v-model="scout" />
<label class="active">Scout</label>
</div>
</div>
<button type="submit" class="btn">Submit</button>
<router-link to="/member" class="btn grey">Cancel</router-link>
</form>
</div>
</div>
</template>
<script>
import db from "../data/firebaseInit";
export default {
data() {
return {
host: null,
scout: null
};
},
methods: {
addwave() {
db.collection("members")
.where("name", "==", this.$route.params.host)
.get()
.then(querySnapshot => {
querySnapshot.forEach(doc => {
doc.ref
.update({
host: db.FieldValue.increment(1)
})
.then(() => {
this.$router.push({
name: "member",
params: { name: this.name }
});
});
});
});
}
}
};
</script>
一切都可以编译,但是每当我尝试在每个输入字段中输入一个名称时,我都会收到错误消息“FirebaseError:“Function Query.where() 需要一个有效的第三个参数,但它是未定义的。”
我不知道为什么会收到此错误或如何修复它。谁能指出我正确的方向?
最佳答案
目前的代码至少存在两个问题:
this.$route.params.host
应该是 this.host
,因为这是 Vue 将绑定(bind)主机参数的地方。这是对您最初问题的直接回答。
假设 db
从 firebase.firestore()
创建, 它不是引用静态 FieldValue
的有效方式对于 increment
功能。您需要直接将其获取为 firebase.firestore.FieldValue
.您需要以某种方式将此符号导入您的代码,因为现在 firebase
无法访问,因为它仅存在于 firebaseInit
中模块。
执行此导入的一种方法是将其添加到 <script>
的顶部部分(另一个答案中记录了另一种方式):
import firebase from "firebase/app";
另请注意,鉴于每个文档的更新速率限制为每秒 1 次更新,计数器最终可能无法缩放。 firebase 文档有一个 solution了解一旦超出此解决方案,如何构建分布在多个文档中的计数器。无论如何,这也表明正确使用了 increment
一般。
关于javascript - 在 Vue App 上使用 FieldValue 增加 Firestore 的值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58735725/
As per Firebase documentation, we should not use incremental values as it may cause hotspots.I ha
根据Firebase文档,我们不应该使用增量值,因为它可能会导致热点。我有多个子集合,并且我只对对子集合进行排序感兴趣,所以我希望将服务器端时间戳与文档ID(它表示我的子集合所在的文档)连接在一起。但
我在我的 React 应用程序中使用 firestore。它在尝试获取/创建/更新文档时没有任何问题。但是我无法访问我需要使用 arrayUnion 更新数组的 FieldValue。我使用的 fir
我必须在firebase firestore中增加一个值,数据看起来像这样 { "key":{ "name":"Apple", "quantity":12 } }
例如我有这样一个文档: team: { members: [{name: "john", age: 2}, {name: "tim", age: 3}] } 我想将 Tims 年龄更新为 4 {nam
我有一个具有以下结构的文档: { "email" : "a@gmail.com", "value" : 100, "children" : [
我有以下功能 Future _updateDocument(String path, {Map data}) async { final Map stampedData = {'updat
我将用户的 Firebase 云消息注册 token 存储在 Firestore 用户集合中,每当我发送通知时,我都会删除未使用的 token 。我正在使用 admin sdk 在云功能上执行此操作。
Firestore 的 FieldValue.increment(someValue) 可以与其他字段正常配合使用,但不能与 map 配合使用。 我正在尝试增加 map 中属性的值。我有一个名为用户的
我试图通过使用反射来避免对配置类的序列化进行硬编码,但我遇到了一种我无法解决任何问题的情况。这就是我想要做的。 我有这样一个类 public class Configuration { publ
在我的 Typescript 应用程序代码中,我定义了一个模型,该模型使用 Firestore 在服务器上生成的时间戳。当文档从数据库返回时,该字段将是一个 ISO 字符串。我想在我的整个应用程序中使
我正在尝试从我在 FireStore 中声明的 map 中删除用户。但是如何获取字段值?我认为它应该是这样的 firestore.FieldValue.arrayRemove(user.uid) 只有
这是我的数据库: 如何在私有(private) map 下删除 lotteryID 中的键“2”?我试过这个: db.collection("users").document(currentUser.
我正在尝试从Firestore数据库中的列表中删除元素,但是它不起作用。我发现奇怪的是,FieldValue.arrayUnion()和FieldValue.delete()正常工作。为什么只有Fie
我已经在文档中的集合中创建了一个审阅系统。在文档中,我有一个数组,其中的平均评分为(在上传评论时添加了评分),但是如果我使用FieldValue.arrayUnion上传两个相等的数字,我只会得到一个
我正在尝试使用客户端对象模型 (CSOM) 从 SharePoint 中提取所有项目信息。以下是我获取项目信息的方式: projectContext.Load(projectContext.Proje
我正在 firestore 中构建一个实时聊天应用程序,我目前在读回消息时间戳时遇到问题。我正在使用 onSnapshot 监听器从我的消息集合中获取更新,但是我发现我在最新的时间戳上收到未定义的错误
我尝试使用react-native-firebase的增量方法来增加数字字段,但它一直给我以下错误: No static method increment(D)Lcom/google/firebase
我有可以正常工作的初始数据。 var data = {field1: FieldValue.increment(1)}; 当我向数据中添加另一个字段时也很好。 data.addAll({field2:
通过 meteor 自动形成, 我可以得到标签 {{> afFieldLabel name="myLabelName"}} 我还可以自动生成输入框 {{> afFieldInput name="myL
我是一名优秀的程序员,十分优秀!