如何使用 swift 从 firebase 中的 JSON 文件中获取电子邮件 ID

2024-04-20

JSON 图像 https://i.stack.imgur.com/V7yZA.png我想查询如下:如果我提供电子邮件,那么我必须获取 ID。目前我可以获取电子邮件或 ID,但我需要以下示例的解决方案。

例如 1)如果我给[email protected] /cdn-cgi/l/email-protection那么我需要它的 ID123.

我怎样才能快速实现这一目标?

这是我的JSON file:

{
   "ID": 123,
   "Membership": 1234,
   "title": "Mr.",
   "firstname": "kumar",
   "lastname": "sandeep",
   "email": "[email protected] /cdn-cgi/l/email-protection",
   "membrshipstatus": "Active",
   "volunteer": "Yes",
   "creationDate": "2016-12-27 "
 },

{
   "ID": 452,
   "Membership": 4531,
   "title": "Mr.",
   "firstname": "kumar",
   "lastname": "sandeep",
   "email": "[email protected] /cdn-cgi/l/email-protection",
   "membrshipstatus": "Active",
   "volunteer": "Yes",
   "creationDate": "2016-11-17 "
 },

这是我的Swift code:

    import UIKit
    import Firebase
    import FirebaseAuth

    class ViewController: UIViewController {

        @IBOutlet weak var emailofUser: UITextField!
        @IBOutlet weak var passwordofUser: UITextField!
        var ref:FIRDatabaseReference! //created a variable ref of type firebase database reference
        var databaseHandle:FIRDatabaseHandle? //to handle to database listener like to stop or start it


        var postdata = [String]?()
        var postall = [[String:String]]()


        override func viewDidLoad() {
            super.viewDidLoad()

            //set firebase reference
            ref = FIRDatabase.database().reference()

ref.child("1").child("email").observeEventType(.Value, withBlock: { snapshot in

            let emailid = snapshot.value as? String

            print(emailid)
        })

ref.child("1").child("ID").observeEventType(.Value, withBlock: { snapshot1 in

            let userID = snapshot1.value as? Int

            print(userID)
        })

            ref.queryOrderedByValue().observeEventType(.ChildAdded, withBlock: { snapshot2 in
                if let parentname = snapshot2.value as? Int {
                    print("The \(snapshot2.key) dinosaur's score is \(parentname)")
                }
            })
        }
    }

与此 JSON 图像相关的 Swift 代码:

override func viewDidLoad() {
        super.viewDidLoad()



            //set firebase reference
        ref = FIRDatabase.database().reference()

        let userRef = ref.child("1")

        //let queryRef = userRef.queryOrderedByChild("email").queryEqualToValue("[email protected] /cdn-cgi/l/email-protection")


        userRef.queryOrderedByChild("email").queryEqualToValue("[email protected] /cdn-cgi/l/email-protection").observeEventType(.Value, withBlock: { snapshot in

            for child in snapshot.children{

            let snap = child as! FIRDataSnapshot

                let userDict = snap.value as! [String:Any]

                let userId = userDict["ID"]
                let lastname = userDict["lastname"]
                print("\(userId!)  \(lastname!)")


            }
                    })

一般来说,您应该使用用户的 uid 在用户节点中存储数据。假设您的用户节点名为 /users... 像这样

users
  uid_0
   "ID": 123,
   "Membership": 1234,
   "title": "Mr.",
   "firstname": "kumar",
   "lastname": "sandeep",
   "email": "[email protected] /cdn-cgi/l/email-protection"
  uid_1
   "ID": 452,
   "Membership": 4531,
   "title": "Mr.",
   "firstname": "kumar",
   "lastname": "sandeep"
   "email": "[email protected] /cdn-cgi/l/email-protection"

这是获取您所询问的数据的查询

let usersRef = ref.child("users")
let queryRef = usersRef.queryOrdered(byChild: "email")
                       .queryEqual(toValue: "[email protected] /cdn-cgi/l/email-protection")
queryRef.observeSingleEvent(of: .value, with: { (snapshot) in

     for child in snapshot.children {
          let snap = child as! FIRDataSnapshot
          let userDict = snap.value as! [String: Any]
          let userId = userDict["ID"]
          let lastname = userDict["lastname"]
          print("\(userId!)  \(lastname!)")
      }
})

结果打印:

123  sandeep
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 swift 从 firebase 中的 JSON 文件中获取电子邮件 ID 的相关文章

随机推荐

  • 本地数据库是否有任何选项,例如用于 j2me - CLDC 设备的 Sqlite?

    本地数据库是否有任何选项 例如用于 j2me CLDC 设备的 Sqlite PerstLite 和 OpenBaseMovil 均享有双重许可 是否有任何开源选项 或者 开发应用程序的任何替代方法 from J2ME中的数据库列表 htt
  • Android 推荐且可靠的 API 用于定期后台工作?

    我一直在使用 WorkManager 为我的应用程序创建通知 就我的目的而言 我认为PeriodicWorkRequest是最合适的 但经过一些测试和在线阅读后 它似乎非常不可靠 使用最小间隔 15 分钟 并关闭应用程序 该工作人员醒来 5
  • ASP.NET Core API 在 React 客户端调用时返回 401

    我正在开发一个带有 React Redux 前端的全新 ASP NET Core 2 1 SPA 应用程序 我已经实施了jwt从 Azure AD B2C 获取其令牌的身份验证 当我分析对后端 API 调用的网络选项卡时 我看到令牌被放置在
  • jQuery - iPad/iPhone - 禁用滚动后启用滚动

    我使用以下方法禁用了 iPad 上的滚动 function disableScrolling document ontouchmove function e e preventDefault 有没有办法简单地再次启用它 这对于以下函数特别有
  • iOS:在导航栏下方添加固定图像

    感觉这应该相当简单 但到目前为止我尝试过的都没有成功 简而言之 我想在我以编程方式创建的 UITableViewController 中的导航栏下方添加一个固定图像 换句话说 我希望图像保持在导航栏的正下方 即使用户在表视图中上下滚动 它基
  • RNGCryptoServiceProvider 已过时

    我需要使用随机数字和字母生成令牌 但是 错误消息告诉我使用 RandomNumberGenerator 它只会给我随机数 这没有帮助 错误信息 RNGCryptoServiceProvider 已过时 RNGCryptoServicePro
  • Scrapy 阿拉伯字母返回一些奇怪的东西

    我在用scrapy关于阿拉伯字母和英文字母 英文字母完美地工作 然而 阿拉伯字母显示如下 gs300 2006 u0644 u0643 u0632 u0633 u062c u064a 有什么帮助吗 我正在使用 python 和 scrapy
  • 如何编写一个程序来通过 Android 设备安装和卸载应用程序?

    我想编写一个程序 可以通过 Android 设备安装和卸载应用程序 由于这些功能是通过 Android 设备提供的 但是我应该从哪里开始以及需要查看哪些文件来开发我自己的应用程序 请帮帮我 提前致谢 Praween 对于这样的安装代码 In
  • 使用委托调用构造函数

    I found this http blogs msdn com haibo luo archive 2005 11 17 494009 aspx但尝试使用它但失败了 如何使用反射创建对象并通过将其放入委托中来使其快速 DynamicMet
  • 多租户主键的最佳方法

    我有一个被多个客户使用的数据库 我真的不希望代理增量键值在客户端之间流动 我希望编号从 1 开始并针对特定客户 我将使用由两部分组成的复合键tenant id以及增量 id 为每个租户创建增量密钥的最佳方法是什么 我正在使用 SQL Ser
  • Android 滚动视图不会一直向下滚动

    我查看了很多问题 但列出的解决方案都没有解决我的问题 Scrollview 不会滚动到底部边缘 https stackoverflow com questions 17124680 scrollview doesnt scroll to t
  • 获取 mysql 的最后插入 ID 如何与事务一起使用? + 交易问题

    一个由两部分组成的问题 在我的 CodeIgniter 脚本中 我启动一个事务 然后插入一行 将 insert id 设置为 php 变量 使用新 ID 作为外键将更多行插入到另一个表中 然后提交所有内容 所以我的问题是 如果在结束事务之前
  • 如何打印列表的值?

    我有一个Python问题 假设给你一个向量 x 包含大部分为零的实值 例如 x 0 0 0 87 0 0 0 0 0 0 0 32 0 46 0 0 0 0 0 10 0 0 0 0 完成功能 compress vector x 这样就返回
  • 如何将替换正则表达式作为命令行参数传递给 perl 脚本

    我正在尝试编写一个简单的 perl 脚本 以将给定的正则表达式应用于文件名等 但我在将正则表达式作为参数传递到脚本中时遇到问题 我希望能够做的是这样的 gt myscript s hi bye i hi h bye h gt 我已经生成了这
  • 警告: PDO::__construct(): [2002] 中没有这样的文件或目录(尝试通过 unix:///tmp/mysql.sock 连接)

    我的代码昨天工作得很好 今天它突然不想连接到我的数据库 我没有更改它或代码上的任何设置 也没有更新任何软件 我所做的就是这样 new PDO mysql host localhost port 3306 dbname test userna
  • 检查互联网连接的 Android 服务?

    我想创建一个 Android 服务 每当断开连接以及互联网再次重新连接时 它都会通知主要活动 我有以下功能来检查互联网连接 private boolean haveInternet NetworkInfo info NetworkInfo
  • 作为文字类型无效?

    在 C 14 中void是文字类型 如果某个类型满足以下条件 则该类型是文字类型 空白 或者 标量类型 或者 参考类型 或者 文字类型的数组 或者 具有以下所有属性的类类型 第 9 条 它有一个简单的析构函数 它是一种聚合类型 8 5 1
  • 日期时间在转换时出错

    我有这种甲酸盐的字符串 19 8 1988 note String DateOfBirth 19 8 1988 当我使用Datetime parse DateOfBirth 它给了我invalid dateformat error 我也无法
  • 如何在 Excel 中创建自定义数字格式以将逗号显示为小数点分隔符

    例如 代替4 100 3 美国 这将是4 100 3 Go to Tools Options International Tab or Advanced if using Office 2010 Separators 取消选中 使用系统分隔
  • 如何使用 swift 从 firebase 中的 JSON 文件中获取电子邮件 ID

    JSON 图像 https i stack imgur com V7yZA png我想查询如下 如果我提供电子邮件 那么我必须获取 ID 目前我可以获取电子邮件或 ID 但我需要以下示例的解决方案 例如 1 如果我给 email prote