Обновите значение, используя прямой путь вместо «объекта» - PullRequest
0 голосов
/ 10 мая 2018

возможно ли обновить прямой путь в firebase вместо объекта пути?

, например, вместо этого: (который работает)

newsRef = db.ref("/news")
newsRef.update({
            image: imageURL
          });

сделать что-то вродеэтот?(который не работает)

newsRef = db.ref("/news/image")
    newsRef.update(imageURL)

1 Ответ

0 голосов
/ 11 мая 2018

Как сказано в комментариях, первым аргументом для метода update должен быть объект, содержащий дочерние элементы для замены.

У вас есть два решения:

1 / Передача реквизита в виде строки (Не самая элегантная .... но если вы действительно хотите)

Вы передаете только одну строку в свой компонент следующим образом:

<upload-component path="/news/image"></upload-component>

и в компоненте:

  props: ['path'],
  ....

  methods: {
    saveToDb: function (imageUrl) {

        const pathElems = this.path.split('/');

        const ref = firebase.database().ref(pathElems[1]);

        const imageObj = {};  
        imageObj[pathElems[2]] = imageURL;  //Using the square brackets method 
        ref.update(imageObj);

    }
  }

2 / Передача реквизита как объекта

См. Документ Vue.js https://vuejs.org/v2/guide/components-props.html#Passing-the-Properties-of-an-Object

imageProps: {
  node: '/news',
  key: 'image'
}

тогда

<upload-component v-bind="imageProps"></upload-component>

и в компоненте:

  methods: {
    saveToDb: function (imageUrl) {

        const ref = firebase.database().ref(this.node);

        const imageObj = {};  
        imageObj[this.key] = imageURL; 
        ref.update(imageObj);

    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...