当前位置: 首页 > 知识库问答 >
问题:

将子值更新为Firebase iOS,并在其他节点中引用自动ID

韩征
2023-03-14

我想到了这个结构来将数据写入Firebase服务器。然而,我在实际代码中有复杂的情况,以这种方式编写结构。

PlanIt
 plans
  -LETR-XJvQsZCOpG-T1N
    Uid: "ZjtJdkjzuxc0mZn4u9TfWsXa9jh2"
    date: "20180609"
    title: "This weekend Plans?"
  -UYijs09as9jiosdijfi
    Uid: "some uid"
    date: "20180609"
    title: "some title"

 all_images:
    -LETR-XJvQsZCOpG-T1N
       image_0: "https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.c.."
       image_1: "https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.c.."

 all_plan_details
    -LETR-XJvQsZCOpG-T1N
       detail_0: "Bike Rodeo, Safety Presentation and Riding Tour o"
       detail_1: "Bike Rodeo, Safety Presentation and Riding Tour o"
    null

这是我试图更新节点的函数。我在这里的思考过程是--我首先将计划标题和UID设置为要创建的自动ID。然后,我尝试引用auto ID创建的“键”,然后尝试存储all_images和all_dates,并使用对childByAutoID调用创建的相同键的引用来存储,然后更新这些值。

对不起,任何混乱或混乱的代码,我是字面上编辑的东西,因为我们说了一些特定的名字,这样可能是关闭的,但我希望你能理解的大意,我试图尝试仍然。

func uploadPlanitData(plan: [String], withDate: [String], withImage: [String], withTitle: String, forUID uid: String, sendComplete: @escaping (_ status: Bool) -> ()) {


    _REF_PLANITS.childByAutoId().updateChildValues(["Planit Title" : withTitle, "uid": uid])


    let key = _REF_PLANITS.key

    let allImages = "all_images/\(key)/"

    let allDates = "all_dates/\(key)"

    let childUpdate = [allImages : withImage, allDates: withDate]
    _REF_ALL_IMAGES.updateChildValues(childUpdate)

    sendComplete(true)
}

UPDATE-该代码块当前像这样构造我的DB-这几乎是正确的-除了在all_images&all_dates节点中,而不是“planits”-我希望在那里有那个键(-leaazrwyi_sqonurev9)。这样,我就有了一种方法来将每个图像和日期与它们所属的计划唯一地分组

Planit
 Plans  
    -LEaaZrwYI_SqonuREV9
     senderId
     title: 


all_dates
 planits
 0: ""

 all_images
 planits
 0: ""

共有1个答案

东门子昂
2023-03-14

如果我理解正确,您需要为新计划创建新键,然后用相同的键将信息存储在其他节点中。如果是这样的话,应该是这样的:

let newPlanetRef = _REF_PLANITS.childByAutoId()
newPlanetRef.updateChildValues(["Planit Title" : withTitle, "uid": uid])

let key = newPlanetRef.key

let childUpdate = [allImages : withImage, allDates: withDate]
_REF_ALL_IMAGES.child(key).updateChildValues(childUpdate)

这假定_ref_planits/planit/plansdatabaseReference,而_ref_all_images是对/planit/all_images的引用。

 类似资料:
  • 我想用XSLT转换XML文档。按名称和属性匹配的节点及其子节点应嵌套/移动到新节点中。 从转变 到 但是我的XSLT工作不好。您有什么提示吗,XSLT文件有什么问题? 非常感谢你 安德烈亚斯 我的XSLT 输出: 我的源XML文件 我希望在转换后的输出中将v:data节点及其子节点嵌套到一个新节点中。但只有属性名为“Custon”的v:data节点。转换后的XML文档应该如下所示 如果我从XSLT

  • 而这是我的主课,有没有其他方法做得更有效率?

  • 我有这个密码 但是,如果要更新节点的值,该怎么办?我试着在箱子里做value=newValue,但似乎不被允许。 我的树/节点的结构:

  • 问题内容: 我目前正在处理xml项目。到目前为止,我已经使用Dom Parser成功地将xml链接到java类。我在下面提供了代码。我正在努力的是将开始日期的月份更新一个月,因此类似2/1 / 2013、3 / 1/2013 …的内容将相应地在xml文件中更改。我在底部有方法调用,但是当我调用它时,xml文件不会更新它的值。帮助将不胜感激 之前的* data.xml * 想要data.xml 之后

  • 问题内容: 我正在尝试用Elasticsearch替换Solr设置。这是一个新的设置,尚未投入生产,因此我有很大的空间来摆弄各种东西并使它们运转良好。 我有非常大量的数据。我正在索引一些实时数据并将其保留7天(通过使用_ttl字段)。我不在索引中存储任何数据(并禁用了_source字段)。我预计我的指数将稳定在 200亿 行左右。我将把这些数据放入2-3个命名索引中。到目前为止,多达数十亿行的搜索

  • 不具有任何3个属性值(TargetInteresting1、TargetInteresting2、TargetInteresting3)的节点应不加修改地复制到最终结果中。 我正在寻找一个使用XSLT2.0的解决方案。我不知道从何说起,我还不太习惯xslt:-(