我如何使用Firebase快照打印多个JSON对象数据-数据提取成功

如何解决我如何使用Firebase快照打印多个JSON对象数据-数据提取成功

到目前为止,我已经完成了这项工作。

从快照将数据拉到控制台:

{34FrUM8777N6i0IWfqsatdMc29g1: {…},3DSOrtpBHlYENn14bE9UJKWly4G3: {…}}
3DSOrtpBHlYENn14bE9UJKWly4G3:
-MH8EpUbn1Eu3LdT0Tj0: {code: "https://www.apeSyntax.com",content: "This is the tut content",date: "2020-09-13",email: "test",first: "tester guy",…}
-MH8TRc3NfinUtI-XORZ: {code: "https://www.codepen.io/apeSyntax/pen/ExKNawv",content: "asdad asd asd a",email: "test@tester",first: "tester",…}
__proto__: Object
34FrUM8777N6i0IWfqsatdMc29g1:
-MH9rJPyKpgKm7HnulTZ: {code: "https://www.codepen.io",content: "Tutorial content from the second tutroial posted by this author. ",email: "apeSyntax@gmail.com",first: "ape ",…}
-MH49Fad5NKD9awjQzVF: {code: "https://www.codepen.io/apeSyntax/pen/ExKNawv",content: "new tutorial testing data fetching",date: "2020-09-12",email: "servicioscelfonica@gmail.com",first: "apeSyntax",…}
__proto__: Object

到目前为止,我设法按想要粘贴的顺序拉出数据,但是如何将这些数据粘贴到我的视图中?

这是我完整的代码

<template>
  <v-container id="my-tutorials">
      <h1>All Tutorials</h1>
           <!-- loop over the tutorials -->
           <div v-for="(tutorial,key) in allTutorials" :key="key">
           <h2>{{ user.uid.title }}</h2>
           <p>{{ tutorial.content }}</p>
           <!-- and so on -->
     </div>
  </v-container>
</template>

<script>

import firebase from '../plugins/firebase'
import vue from 'vue'

let db = firebase.database();
//let usersRef = db.ref('users');
let tutRef = db.ref('tutorials');

export default {
  name: 'TutShow',data() {
      return {
          authUser: {},allTutorials: {}
      }
  },methods: {
  },created: function() {
    data => console.log(data.user,data.credential.accesstoken)
    firebase.auth().onAuthStateChanged(user => {
        this.authUser = user
        if (user) {
          tutRef.once('value',snapshot => {
            snapshot.val()
            console.log(snapshot.val())
            if (snapshot.val()) {
            this.allTutorials = snapshot.forEach(this.allTutorials)
            vue.set( 'allTutorials',this.allTutorials )
             }
          });
        }

     })
   }
}
</script>

这是我的结果:

enter image description here

但是我还无法在所有教程数据中显示在屏幕上:

enter image description here

有任何提示吗?

解决方法

value处理程序中存在一些语法和逻辑错误。

我想做的是将所有嵌套文档平面映射到一个数组或对象中。

我会选择这样的数组

data: () => ({
  authUser: null,allTutorials: [] // initialise an array
})

并在您的value处理程序中

tutRef.once('value',snapshot => {
  const val = snapshot.val()
  if (val) {
    this.allTutorials = Object.values(val).flatMap(tutes =>
      Object.entries(tutes).map(([ _key,tutorial ]) => ({ _key,...tutorial })))
  }
})

然后在您的模板中,您可以使用此

<div v-for="tutorial in allTutorials" :key="tutorial._key">
  <h1>{{ tutorial.title }}</h2> <!-- ? just guessing on this one -->
  <p>{{ tutorial.content }}</p>
</div>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?