Как проверить, существует ли значение, а затем добавить или обновить значения в firebase с помощью JavaScript? - PullRequest
0 голосов
/ 03 мая 2020

У меня есть приложение, в котором пользователи могут войти и добавить поездки, в которых они были. моя структура fb db выглядит примерно так:

{
  "users": {
    "randomId": {
      "Place1": {
        "name": "Place1",
        "somedata": "oianoiasnfianafs",
        "moredata": "asdasdadasdas",
        "THISKEYIWANTTOUPDATE": [
          {
            "data": "asasfas"
          }
        ]
      }
    }
  }
}

Вы можете увидеть ключ выше, который я хочу обновить. но моя проблема в том, что мне сначала нужно проверить, существует ли Place1 в базе данных? как мне этого добиться? Я знаю, что могу позвонить set, но не уверен, что это лучше всего сделать? Я также знаю об обновлении, но я хочу logi c, как этот псевдокод ниже

if (place1) {
 // call update()
} else {
 // cat set()
}

Я не уверен, как сделать часть if(place1), хотя? и если в firebase лучше всего проверить, существует ли он?

1 Ответ

0 голосов
/ 03 мая 2020

Вы можете попробовать использовать Object.keys(obj) для получения атрибута объекта.

предположите, что userObj равен

   "users": {
      "randomId": {
        "Place1": {
            "name": "Place1",
            "somedata": "oianoiasnfianafs",
            "moredata": "asdasdadasdas",
            "THISKEYIWANTTOUPDATE": [
                {
                    "data": "asasfas"
                },
            ]
        },
      }
   }

, и вы упомянули, что оно может быть кратным PlaceN при randomID, тогда я предполагаю, что шаблон может быть:

несколько регистров, иметь Place2 и значение Place1 равно нулю:

      "randomId": {
        "Place1": {
         },    
         "Place2": {
            "name": "Place2",
            "somedata": "oianoiasnfianafs",
            "moredata": "asdasdadasdas",
            "THISKEYIWANTTOUPDATE": [
                {
                    "data": "asasfas"
                },
            ]
         }, 

       }

и функция проверки:

checkPlace1ExistOrNot=(userObj)=>{
    let tempRandomId = userObj[Object.keys(userObj)[0]]  //It should be vale of "RandomId"
    if(tempRandomId[Object.keys(tempRandomId)[0]])
    {
        return true     // users.randomId.Place1 is exist
    }
    else
    {
        return false    // users.randomId.Place1 is not exist
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...