【问题标题】:Get parent of DataSnapShot获取 DataSnapShot 的父级
【发布时间】:2025-11-24 15:15:02
【问题描述】:

我有一个代码可以让孩子的节点像这样出来

{YAlthobiti: {firstName: yara, lastName: A, password: 12345, gender: true, DoB: 1/1/2000, email: yara@gmail.com}}

所以我需要让父级 (YAlthobiti) 对其执行功能我该怎么做?

这是我的代码

static Future<String> getUserEmotivID(String email) async{
    String EmotivID = "";

    await _ref.child('Users')
    .orderByChild("email")
    .equalTo(email)
    .once()
    .then((DataSnapshot dataSnapshot) {
      EmotivID =  dataSnapshot.value.toString();
      print(EmotivID);
      return EmotivID;
    }).catchError((error, stackTrace) {
      print("inner: $error");
      print("Dose not Exist");
    });
    return "";
  }

我找了很多,一无所获

【问题讨论】:

    标签: firebase flutter dart authentication firebase-realtime-database


    【解决方案1】:

    当您对 Firebase 数据库执行查询时,可能会有多个结果。所以快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果列表。

    您的代码需要通过循环 dataSnapshot.value.values 来处理此列表

    【讨论】:

      【解决方案2】:

      我猜你需要那个节点的密钥。 您可以在 DataSnapshot 上使用属性 key,如文档中的 here 所述。

      所以你的代码应该是这样的:

      .then((DataSnapshot dataSnapshot) {
        EmotivID =  dataSnapshot.key;
        print(EmotivID);
        return EmotivID;
      })
      

      【讨论】:

      • 我试过但它返回它的父女巫是(用户)