Как выполнять операции CRUD в Firebase с помощью CurrentUserId? - PullRequest
0 голосов
/ 20 декабря 2018

Я создаю простой веб-сайт и не могу использовать обычные базы данных Firebase в режиме реального времени с currentUserId.

Моя система аутентификации работает нормально;я могу войти / подписаться / подписаться на базу данных.И я могу записывать данные в Firebase с получением входных данных из формы.

    //GETTING DATA WITH FORM
    
    // Listen for form submit
    document.getElementById('form').addEventListener('submit', submitForm);
    
    
    // Submit form
    function submitForm(e){
      e.preventDefault();
    
      // Get values
      var name = getInputVal('name');
      var sets = getInputVal('sets');
      var reps = getInputVal('reps');
      var weights = getInputVal('weights');
      
      // Write data
      writeData(name, sets, reps, weights);
    
      // Clear form
      document.getElementById('form').reset();
    }
    
    
    // Function to get form values
    function getInputVal(id){
      return document.getElementById(id).value;
    }
    
    
    //CRUD OPERATIONS
    
    // Reference
    var DataRef = firebase.database().ref('users/'  + 'exercises/');
    
    // Write data to database
    function writeData(name, sets, reps, weights){
      var newDataRef = DataRef.push();
      newDataRef.set({
    
        name: name,
        sets: sets,
        reps: reps,
        weights: weights,
        
      });
    }

Я не хотел начинать чтение, обновление и удаление, пока не решил эту проблему с идентификатором.

Итак, как выполнять операции CRUD для каждого пользователя с идентификатором?Что я могу сделать?

1 Ответ

0 голосов
/ 20 декабря 2018

Вы спрашиваете, как записать данные в местоположение, специфичное для текущего пользователя?Если это так:

var currentUser = firebase.auth().currentUser;
var DataRef = firebase.database().ref('users/' + currentUser.uid + '/exercises/');

Обратите внимание, что это работает только в том случае, если текущий пользователь гарантированно уже вошел в систему. Если вы не можете этого гарантировать, поместите приведенный выше код в прослушиватель состояния auth .

...