Как я могу получить коллекцию на основе строки UID с Vue.js в firestore? - PullRequest
0 голосов
/ 03 июня 2019

Я строю систему администратора на основе Vue.js с firestore. На данный момент мне удалось представить данные, где в качестве строки коллекции используется пользовательский заголовок в виде степпера, а в строке документа указан UID зарегистрированного пользователя. Основная цель всего этого - убедиться, что пользователь может получать только коллекцию или документы, которые имеют свой UID пользователя в виде текстовой строки.

Дерево базы данных выглядит так:

  • Строка сбора (название проекта / или UID пользователя)
    • Строка документа (UID пользователя)
      • Название
      • Описание
      • Тип
      • Назначение

Я хочу, чтобы пользователь видел эти данные в другом разделе, который создается при отправке пользовательских данных. Таким образом, если пользователь создает проект с именем «Project», в боковой панели будет отображаться вкладка «Project». Это работает, но не работает с определенными переменными, которые я добавил.

У меня проблемы с поиском значения, которое я должен добавить в v-for в новом разделе.

Если я отправлю данные в раздел, куда должны быть отправлены данные, в строке сбора будет отображаться «Проект», а не строка UID пользователя. Это происходит, например, когда я делаю:

    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 пользователя» вместо «project»

    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, пользователь в пользователе, всевозможные значения, но кажется, что он его не получает. Кроме того, это появляется, когда я пытаюсь интерполировать внутри v-for, я получаю ошибки, я также пробовал: v-for, который позволяет мне перейти в cli, но выдает ошибку на консоли chrome.

Как получить коллекцию или строку документа с пользовательским UID?

Я ценю все ответы и отзывы здесь, спасибо.

...