【发布时间】:2021-01-17 15:36:20
【问题描述】:
代码:(我 99% 确定问题出在挂载方法中)
<div class="taskManager">
<FilterNav @filterChange="current = $event"
:current="current"/>
<div class="tasks">
<div v-if="tasks.length">
<div v-for="task in filterTasks" :key="task.id">
<SingleTask :task="task" @delete="handleDelete"
@complete="handleComplete"/>
</div>
</div>
</div>
</div>
<TasksNavbar/>
<router-view/>
</template>
<script>
import TasksNavbar from '../components/TasksNavbar.vue'
import SingleTask from '../components/SingleTask.vue'
import FilterNav from '../components/TaskFilterNav.vue'
import Navbar from '../components/Navbar.vue'
import { computed } from 'vue'
import firebase from 'firebase/app'
import 'firebase/auth'
import 'firebase/firestore'
export default {
name: 'Home',
components: { SingleTask, TasksNavbar, FilterNav, Navbar},
data() {
return {
tasks: [],
current: 'all'
};
},
mounted() {
var docRef = firebase.firestore().collection('users').doc(firebase.auth().currentUser.uid)
docRef.get("tasks").then(function(task){
if(task.exists){
this.tasks.push(task.data())
}
}).catch(function(err){
console.log(err.message)
})
},
文件结构: 集合:用户 -> 文档名称为用户 ID 的用户文档 -> 任务数组作为字段,其中包含任务
任务已正确保存到 Firestore,但未正确获取它们。
【问题讨论】:
-
“它没有正确获取它们”很难解决。如果您在调试器中逐行执行代码会发生什么?哪条线路没有按照您的预期执行?
-
@FrankvanPuffelen docRef.get("tasks").forEach(function(task){ if(task.exists){ this.tasks.push(task.data()) } 这些行跨度>
标签: javascript firebase vue.js google-cloud-firestore