首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >(Swift)将数据从UITextField保存到Firebase Firestore中

(Swift)将数据从UITextField保存到Firebase Firestore中
EN

Stack Overflow用户
提问于 2019-11-19 07:21:32
回答 2查看 1.1K关注 0票数 0

当前,所示的代码将字符串"TEST“保存在Firestore数据库中。我需要做的是在按下按钮时保存输入到UITextField中的文本,并将数据保存在Firestore数据库中。

对于我的IBAction功能,我相信它是正确的,但我不知道如何在没有错误的情况下将它放入我的dict中。

代码语言:javascript
运行
AI代码解释
复制
import Foundation
import UIKit
import Firebase
import FirebaseUI

class TrainViewController: UIViewController{

    @IBOutlet weak var trainField: UITextField!
    @IBOutlet weak var locationField: UITextField!
    @IBOutlet weak var engineField: UITextField!

    @IBAction func saveButton(_ sender: UIButton) {
        var train: String = trainField.text!

    }

    override func viewDidLoad() {
        super.viewDidLoad()

        trainField.delegate = self
        var dict = [String:String]()
        dict.updateValue("TEST", forKey: "train")

        let db = Firestore.firestore()
        db.collection("users").addDocument(data: dict)
    }
}

extension TrainViewController : UITextFieldDelegate {
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    } 
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-19 10:48:24

您可能希望从操作中的字段中收集字符串,然后将其传递给函数以进行保存。

代码语言:javascript
运行
AI代码解释
复制
class TrainViewController: UIViewController{

    @IBOutlet weak var trainField: UITextField!
    @IBOutlet weak var locationField: UITextField!
    @IBOutlet weak var engineField: UITextField!

    @IBAction func saveButton(_ sender: UIButton) {
        let trainText = trainField.text!
        self.saveText(theText: trainText)
    }

    override func viewDidLoad() {
        super.viewDidLoad()
    }

   func saveText(theText: String) {
       let db = Firestore.firestore()
       let dict = ["train_text": theText]
       db.collection("users").addDocument(data: dict)
   }
}

将导致将下列内容写入Firestore

代码语言:javascript
运行
AI代码解释
复制
your_firestore
   users
     random_doc_id
        train_text: "the passed in string"

编辑

基于一些新的信息,OP希望将三个文本字段中的文本全部写到一个文档中。

因此,更改按钮操作-它所做的只是调用我们的saveText函数,而不传递任何数据。

代码语言:javascript
运行
AI代码解释
复制
   @IBAction func saveButton(_ sender: UIButton) {
        self.saveText()
    }

然后是saveText函数

代码语言:javascript
运行
AI代码解释
复制
   func saveText() {
       let trainText = self.trainField.text!
       let locationText = self.locationField.text!
       let engineText = self.engineField.text!

       let db = Firestore.firestore()
       let dict = ["train_text": trainText,
                   "location_text": locationText,
                   "engine_text": engineText]
       db.collection("users").addDocument(data: dict)
   }

由此产生的Firestore如下所示

代码语言:javascript
运行
AI代码解释
复制
your_firestore
   users
     random_doc_id
        train_text: "text from the train field"
        location_text: "text from the location field"
        engine_text: "text from the engine field"
票数 1
EN

Stack Overflow用户

发布于 2019-11-19 07:47:21

这很容易实现,您需要做的是声明一个函数,在输入数据后保存它。

您无法保存trainField的原因是,当ViewController调用viewDidLoad时,按钮没有被按下,因此您没有从trainTextField获得文本。

要解决这个问题,您可以执行以下操作:

代码语言:javascript
运行
AI代码解释
复制
fileprivate func saveTrainWithData(text: String) {
    let dictData = ["train": text] as [String:Any]
    // save data to FireStore here using `dictData`
    let db = Firestore.firestore()
    db.collection("users").addDocument(data: dictData)
}

现在,要关闭这个函数,只需在@IBAction内部调用它,如下所示

代码语言:javascript
运行
AI代码解释
复制
@IBAction func saveButton(_ sender: UIButton) {
    var train: String = trainField.text!
    saveTrainWithData(text: train)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58937370

复制
相关文章
在Managed Code通过Google Gmail发送邮件以及如何通过Outlook配置Gmail
在项目开发中,发送邮件时一种非常常见的功能。一般的情况下,大型的公司都有自己的邮件系统,我们可以直接通过公司的Pop/SMTP Server进行邮件的发送和接收。不过,对于一些小公司不具有这样的条件,他们一般通过一些公共的邮件服务通过商提供的邮件服务。比如Sina,163就是很好的、常用的邮件服务。不过相比之下,我还是习惯使用Google Gmail。 接下来,我将介绍两方面来介绍今天的内容,如果通过Managed code通过Gmail进行邮件的发送,以及如何在Outlook中配置Gmail。今天介绍的东
蒋金楠
2018/02/07
1.7K0
在Managed Code通过Google Gmail发送邮件以及如何通过Outlook配置Gmail
OUTLOOK+VBA 备份邮件到GMAIL
Outlook上有不少邮件,用VBA写个脚本,通过批量转发邮件, 把邮件备份到GMAIL上。
贰师兄TEN
2020/12/08
9180
Python 使用Gmail发送邮件
前言:2014-05-22记录在hi baidu上,现在移过来 使用python向gmail发邮件 """ 发送邮件 1: 需要提供发送者的邮件、密码;接收者地址; 2:步骤: a:Login 失败说明无法登陆; b:登录成功则可以发送邮件; c:退出 """ class SendMailToServer(): """docstring for SendMailToServer""" def __i
py3study
2020/01/06
1.5K0
SNSGAME和GMAIL中如何实现邀请开通?
最近有朋友问到我,snsgame中邀请开通是如何实现的,如何鉴别身份的合法性等,能不能实现类似gmail那样通过邮件扩散的方式.
王亚昌
2018/08/03
7100
Discourse 发送邀请邮件不能发送
官方的解释是:Discourse 的设计就是如果将这个配置设置为 non-staff,那么如果一个用户如果是 staff 用户组的话,这个用户将会接收到从 Discourse 发送过来的电子邮件。
HoneyMoose
2021/03/04
1.2K0
Discourse 发送邀请邮件不能发送
Discourse 发送邀请邮件不能发送
官方的解释是:Discourse 的设计就是如果将这个配置设置为 non-staff,那么如果一个用户如果是 staff 用户组的话,这个用户将会接收到从 Discourse 发送过来的电子邮件。
HoneyMoose
2021/03/05
9290
使用 Python 通过 Gmail 发送邮件报错
因为谷歌默认不允许通过不安全的应用访问 Gmail 等服务,可以去 "我的帐号" 中把 "不够安全的应用的访问权限" 打开即可。跳转链接如下:
王图思睿
2021/06/16
2K0
gmail邮箱无法发送邮件_gmail发不出邮件怎么办
我在我做的邮箱系统中绑定了163邮箱,然后给我的gmail邮箱发邮件,gmail没有收到邮件。这时,心里大惊,我靠,不会是我系统出bug了吧!!用QQ邮箱发一遍,gmail收到了。这时更加慌张了,心想应该是我的系统bug了。然后用163官网发一遍,嗯~~完美,没收到
全栈程序员站长
2022/09/30
2.7K0
mailx(mail)配置outlook SMTP方式发送邮件
转载文章。 因为目前数据库备份脚本缺少告警机制,告警平台还没完善,因此临时用邮箱告警。
保持热爱奔赴山海
2019/09/18
3.2K0
mailx(mail)配置outlook SMTP方式发送邮件
SpringBoot集成QQ/网易/Gmail邮箱发送邮件
添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> application.yml配置文件新增 spring: mail: # qq host: smtp.qq.com #发送邮件服务器 username: xx@qq.com #QQ邮箱 password:
高大北
2022/12/27
1.5K0
谷歌发现黑客新工具,可窃取Gmail、雅虎、Outlook等电子邮件账户
8月23日消息,谷歌威胁分析小组(TAG)发现,名为Charming Kitten的伊朗政府支持团体,在其恶意软件库中增加了一个新工具,可以从Gmail、雅虎和微软Outlook账户中检索用户数据。 谷歌将该工具称为HYPERSCRAPE,该工具在2021年12月首次被发现。据说伊朗用这个开发中的软件入侵了二十余个帐户,已知最早的样本可以追溯到2020年。 Charming Kitten是一个高度活跃的高级持续性威胁(APT),据信与伊朗的伊斯兰革命卫队(IRGC)有关,曾参与过与政府利益一致的间谍活动。
FB客服
2023/03/30
1.2K0
谷歌发现黑客新工具,可窃取Gmail、雅虎、Outlook等电子邮件账户
使用System.Net.Mail通过gmail发送电子邮件
gmail的smtp采用了ssl连接:      Outgoing Mail (SMTP) Server - requires TLS: smtp.gmail.com (use authentication)      Use Authentication: Yes      Use STARTTLS: Yes (some clients call this SSL)      Port: 465 or 587 知道了gmail的发信细节,用System.Net.Mail,就是下面这段代码就可以了 usi
张善友
2018/01/19
1.8K0
outlook下载
Outlook是微软推出的邮件管理工具。Outlook 2021正式版是微软Office软件套件的组成部分之一,帮助用户快速收发电子邮件、记日记、管理联系人信息、安排日程、分配任务等。Outlook 2021免费版支持查看邮件,可以选择分布式方式查看保存的邮件列表。 outlook安装包下载
用户9693436
2022/04/23
4.1K0
Microsoft Outlook LTSC 2021 for Mac(outlook邮箱)
Microsoft Outlook LTSC 2021 for Mac中文版是一款邮件和日历管理应用程序。Microsoft office LTSC 2021 是套装中的一个组成部分,与Word、Excel和PowerPoint等其他应用程序一起提供。
皮西歪
2023/04/25
2.7K1
Microsoft Outlook LTSC 2021 for Mac(outlook邮箱)
《Simplify Gmail》让网页版Gmail更清爽
先放一张使用Simplify Gmail后, 清爽的gmail界面~ Simplify Gmail是一款简化 Gmail 界面的扩展程序 Simplify Gmail 并没有将原有的功能删掉, 它只是
zhaoolee
2019/05/14
1K0
《Simplify Gmail》让网页版Gmail更清爽
离线 Gmail
在 Gamil 支持 Google Gears 超过了一年之后,Google 终于发布了离线 Gmail。不像 Mozilla Thunderbird 或者 Outlook 一样的软件,使用离线版 Gmail 你不需要安装任何额外的软件,它使用通过浏览器进行工作的,只要你的浏览器支持 Google Gears 即可。
Denis
2023/04/14
1.4K0
离线 Gmail
SpringBoot 2.x 集成QQ邮箱、网易系邮箱、Gmail邮箱发送邮件
1、添加Starter模块依赖 2、添加Spring Boot配置(QQ/网易系/Gmail) 3、调用JavaMailSender接口发送邮件
游离于山间之上的Java爱好者
2022/08/09
4K0
SpringBoot 2.x 集成QQ邮箱、网易系邮箱、Gmail邮箱发送邮件
TIM 群主邀请其他人员入群,被邀请人从哪个接口获得这条邀请信息呢?
在使用TIMSDK的群主邀请其他成员入群(被邀请人需要同意)的功能时,群主通过inviteUserToGroup方法,邀请其他成员入群并邀请成功。此时,被邀请人应该去哪里获得这一条邀请信息呢?
小明同学接音视频
2020/11/25
1.1K0
TIM 群主邀请其他人员入群,被邀请人从哪个接口获得这条邀请信息呢?
SpringBoot 2.x 集成QQ邮箱、网易系邮箱、Gmail邮箱发送邮件
发送模板邮件使用的方法与发送HTML邮件的方法一致。只是发送邮件时使用到的模板引擎,这里使用的模板引擎为Thymeleaf。
Javen
2018/08/21
2.9K0
SpringBoot 2.x 集成QQ邮箱、网易系邮箱、Gmail邮箱发送邮件
GMail的另一种用法:移动硬盘或快速发送邮件:)
阅读更多 GMail的另一种用法:移动硬盘或快速发送邮件:) http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=124&threadID=32367
阿敏总司令
2019/02/28
5200

相似问题

从Outlook发送邀请到Google家庭日历

10

Gmail日历邀请到outlook电子邮件直接发送给收件人Gmail日历而不是outlook

10

发送Gmail日历邀请从其他电子邮件

10

如何使用我的Outlook.Office帐户从Gmail发送消息?

10

转发事件邀请到新Gmail

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档