【问题标题】:Update field in FirebaseFirebase 中的更新字段
【发布时间】:2021-07-02 13:13:34
【问题描述】:

我通过 mqtt 收到以下消息:

{"7801":{"teste":"teste888"}}

我需要获取信息并在teste 字段中进行更新,例如:

colection.update({
    "teste":"teste888"
})

如何直接从 JSON 格式的字符串中获取这些信息?

我的代码:

//mqtt
const mqtt = require('mqtt')
client = mqtt.connect({
   host: 'xxx.xxx.xxx.xxx',
   port: 1883,
   username: 'xxxxxxx',
   password: 'xxxxxxxx'
});

// firestore
const admin = require('firebase-admin');
const serviceAccount = require('./firestore/firestoreTeste.json');
admin.initializeApp({
   credential: admin.credential.cert(serviceAccount)
});

const db = admin.firestore();

//client mqtt
client.on('connect', () => {
   let documents = db.collection('place2').get()
   .then(snapshot => {
       snapshot.forEach(doc => {
           var namePlace = [];
           namePlace = doc.id.toString();
           client.subscribe(namePlace + "/locker/testex/update")
           client.subscribe(namePlace + "/booking/testex/update")
       });
   });
  
});


client.on('message', (topic, message) => {
   console.log('JSON: ', message.toString());
   const namePlace = topic.split("/")[0];
   console.log("Name place: ", namePlace);
   const nameCol = topic.split("/")[1]
   console.log("Name colection: ", nameCol)
   const key = message.toString().substr(2,4);
   console.log("ID: ", key);
   const colection = db.collection("place2").doc(namePlace).collection(nameCol).doc(key);
   const teste = JSON.parse(message)
   console.log("teste: ", teste)
   colection.update({
       //teste
   })
})

谢谢!

【问题讨论】:

  • 更多信息将有助于发布完整的 Firebase 代码。
  • 我发布了完整的 firebase 代码,谢谢
  • 太棒了! .. 欢迎您 .. 当您发布完整代码时.. 开发人员可以查看并为您找到合适的答案 :)

标签: javascript firebase google-cloud-firestore


【解决方案1】:

我想你正在寻找:

colection.update({
  teste: teste["7801"]
})

这将从您的 JSON 中获取属性 7801,并将该值写入数据库中的 teste 字段。

如果您不知道7801 字段的名称,可以使用循环从所有顶级属性中获取值:

let value = "";
Object.keys(teste).forEach((key) => {
  value += test[key];
});
colection.update({
  teste: value
})

这里我只是连接了这些值,但您可能想要针对您的用例做一些更具体的事情。

【讨论】:

    猜你喜欢
    • 2017-11-30
    • 1970-01-01
    • 2023-01-17
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 2021-11-19
    相关资源
    最近更新 更多