如何在Firestore中使用Vue.js提取基于UID字符串的集合?

时间:2019-06-03 16:48:04

标签: firebase vuejs2 firebase-security-rules

我正在使用Firestore构建基于Vue.js的管理系统。目前,我已经成功提交了数据,其中收集字符串是用户以步进表单提交的自定义标题,而文档字符串是注册用户的UID。所有这一切的主要目的是确保用户只能接收以用户UID为文本字符串的集合或文档。

数据库树如下所示:

  • 集合字符串(项目名称/或用户UID)
    • 文档字符串(用户UID)
      • 标题
      • 说明
      • 类型
      • 目的

我希望用户在提交用户数据时创建的另一部分中查看此数据。因此,如果用户创建一个名为“ Project”的项目,则在侧面板中将显示一个名为“ Project”的选项卡。这行得通,但不适用于我添加的已定义变量。

我在寻找应该在新部分的v-for中添加的值时遇到了问题。

如果我在要提交数据的部分提交数据,它将显示“项目”作为收集字符串,而不是用户UID字符串。当我这样做时,这种情况发生在f.ex:

    methods: {
      submit () {
        if (this.$refs.form.validate()) {
          this.loading = true
          const project = {

            title: this.title,
            description: this.description,
            purpose: this.purpose,
            type: this.project,

            user: this.user
          }
          db.collection('project').add(project).then(() => {
            this.loading = false
            this.dialog = false
            this.$emit('projectAdded')
          })
        }
      }
    }

使用上面的代码,我可以使用以下命令获取新创建的集合:

    v-for="project in project"

但是,切换代码并使用“用户UID”而不是“项目”

    methods: {

       submit () {

       if (this.$refs.form.validate()) {
            this.loading = true
            db.collection(this.user).doc(this.user).set({

              title: this.title,
              description: this.description,
              purpose: this.purpose,

              type: 'project',
              date: new Date().toJSON().slice(0, 10).replace(/-/g, '/'),
              user: this.user
            })
          }
        }

enter image description here 我现在显然不能使用v-for =“ project in project”,因为集合和文档字符串是基于用户uid的,所以由于firebase中的集合和文档字符串现在是“ user uid”,所以我不确定该放置什么在v-for中。

我已经在this.user中尝试过this.user,在user中尝试了user,各种各样的值,但是似乎无法获取。另外,当我尝试在v-for内插值时出现错误,我也尝试了:v-for,它允许我传递cli,但在chrome控制台上引发错误。

如何获取用户UID的集合或文档字符串?

在此感谢所有答复和反馈,谢谢。

0 个答案:

没有答案