You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Firebase JSONObject中提取指定用户ID与邮箱?

提取Firebase用户ID和邮箱的方法

你的JSON结构里,identities下的apple.com和email都是仅包含单个元素的数组,直接提取数组的第一个元素即可。以下是几种常用语言的实现示例:

JavaScript/TypeScript

const userData = { 
  "identities": {
      "apple.com": [
          "11111.812763462834126346128349.2222"
      ],
      "email": [
          "email@yahoo.com"
      ]
    },
  "sign_in_provider": "apple.com"
};

// 提取Apple用户ID
const appleUserId = userData.identities["apple.com"][0];
// 提取邮箱
const userEmail = userData.identities.email[0];

console.log(appleUserId); // 输出目标ID
console.log(userEmail); // 输出目标邮箱

Java(使用org.json库)

import org.json.JSONObject;

public class FirebaseDataExtraction {
    public static void main(String[] args) {
        String jsonStr = "{ \"identities\": {\"apple.com\": [\"11111.812763462834126346128349.2222\"],\"email\": [\"email@yahoo.com\"]},\"sign_in_provider\": \"apple.com\" }";
        
        JSONObject userData = new JSONObject(jsonStr);
        JSONObject identities = userData.getJSONObject("identities");
        
        // 提取Apple用户ID
        String appleUserId = identities.getJSONArray("apple.com").getString(0);
        // 提取邮箱
        String userEmail = identities.getJSONArray("email").getString(0);
        
        System.out.println(appleUserId);
        System.out.println(userEmail);
    }
}

Swift(Codable方式,更安全)

import Foundation

struct FirebaseUser: Codable {
    let identities: Identities
    let signInProvider: String
    
    enum CodingKeys: String, CodingKey {
        case identities
        case signInProvider = "sign_in_provider"
    }
}

struct Identities: Codable {
    let appleCom: [String]
    let email: [String]
    
    enum CodingKeys: String, CodingKey {
        case appleCom = "apple.com"
        case email
    }
}

let jsonStr = """
{ 
"identities": {
    "apple.com": [
        "11111.812763462834126346128349.2222"
    ],
    "email": [
        "email@yahoo.com"
    ]
  },
"sign_in_provider": "apple.com"
}
"""

if let data = jsonStr.data(using: .utf8),
   let user = try? JSONDecoder().decode(FirebaseUser.self, from: data) {
    let appleUserId = user.identities.appleCom.first ?? ""
    let userEmail = user.identities.email.first ?? ""
    print(appleUserId)
    print(userEmail)
}

核心思路

identities下的字段都是数组结构,你的场景中数组仅含一个元素,因此直接取数组的第一个元素(索引0或用first方法)即可。如果需要兼容数组为空的情况,可以增加空值判断避免报错。

内容的提问来源于stack exchange,提问作者ekashking

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 05:55:05