javascript - Vuejs Firebase 读取属性
问题描述
<template>
<div id="app">
<h1 id="title">{{ quiz.title }}</h1>
<div id="ques" v-for="(question, index) in quiz.questions" :key="question.text">
<div v-show="index === questionIndex">
<div id="tFlex">
<p id="indexStuff">{{index+1}}</p>
<h2 id="quest">{{ quiz.question.text }}</h2>
</div>
<ol>
<li id="choices" v-for="response in question.responses" :key="response.text">
<label>
<input id="responce" type="radio" v-bind:value="response.correct" v-bind:name="index" v-model="userResponses[index]">
<span class="t">{{response.text}}</span>
</label>
</li>
</ol>
<div id="btns">
<button id="prevbtn" v-if="questionIndex > 0" v-on:click="prev">Previous Question</button>
<button id="nxtbtn" v-on:click="next">Next Question</button>
</div>
</div>
</div>
<div v-show="questionIndex === quiz.questions.length">
<h2 id="fint">Quiz finished</h2>
<p id="sct">Total score: {{ score() }} / {{ quiz.questions.length }}</p>
<div id="btnFlex">
<button id="chck" v-show="questionIndex === quiz.NumQuestions" v-on:click="check">Check Answers</button>
</div>
</div>
</div>
</template>
<script>
import { db } from './firebase';
const DefaultPath = 'quiz/01';
var Quiz;
db.doc(DefaultPath).get().then((doc) => {
Quiz = doc.data();
});
const quiz = Quiz;
console.log(quiz);
export default {
data() {
return{
quiz:quiz,
questionIndex: 0,
canDo: true,
userResponses:Array(quiz.questions.length).fill(false),
}
},
methods: {
next: function() {
this.questionIndex++;
},
prev: function() {
this.questionIndex--;
},
score: function() {
return this.userResponses.filter(function(val) { return val }).length;
},
check: function() {
this.questionIndex = 0;
this.canDo = false;
this.$forceUpdate();
},
cando: function() {
return {canDo:!this.canDo};
},
},
}
</script>
<style>
@import './style.css';
</style>
我对 Vue.js 有这个奇怪的问题。我对 Vue.js 和 web firebase 很陌生。
我在 Chrome 开发者工具中给出了这个奇怪的错误。我正在尝试使用 Firebase 制作一个测验应用程序。我也尝试过先做 Firestore 的事情,然后做数据功能。我是 vuejs 的新手。
解决方案
我认为您实际上并没有在测验中存储任何内容。除其他问题外。但这里是你如何获取一个集合并存储它。
<script>
import firebase from 'firebase'
export default {
data: function() {
return {
quiz: [],
}
},
firestore() {
return {
quiz: firebase.collection('Collection name here')
}
},
}
</script>
如果您需要集合中的特定文档,那么
<script>
import firebase from 'firebase'
export default {
data: function() {
return {
quiz: [],
}
},
firestore() {
return {
quiz: firebase.collection('Collection name here').doc('doc id here')
}
},
}
</script>
推荐阅读
- html - Bootstrap 不能完美地将内容居中
- python - 在 Python 中使用 OpenCV 中的鱼眼相机捕获的点不失真的正确方法是什么?
- apache-flink - 跨 JVM 共享的 Beam DoFn 静态变量
- c++ - clang-tidy 建议我删除 const 引用,为什么?
- javascript - Arduino App 上的 ECG 和 PPG 使用文件中的原始数据
- java - 替换 java.util.formatter 输出中的“null”
- flask - 在哪里将调度程序放在我的网络应用程序代码中?
- json - 当连接用于过滤时,无法在过滤后的 where 子句中执行 json 操作,然后强制转换文本。Where 子句执行过早
- powerapps - 如何在powerapps中参数化api url?
- laravel - Laravel Echo + Laravel Passport 身份验证在私有/存在 websockets 通道中