首页 \ 问答 \ Firebase setValue无法在IOS 10,Swift 3中运行(Firebase setValue not working in IOS 10, Swift 3)

Firebase setValue无法在IOS 10,Swift 3中运行(Firebase setValue not working in IOS 10, Swift 3)

当我尝试将评论保存到Firebase时,我的应用程序崩溃了。 此代码在Xcode 8更新之前完美运行:

    func saveNewComment(){

    //get date
    let date = Date()
    let calendar = Calendar.current
    let components = (calendar as NSCalendar).components([.day,.month,.year], from: date)

    let year = components.year
    let month = components.month
    let day = components.day

    //format month
    let dateFormatter: DateFormatter = DateFormatter()
    let months = dateFormatter.shortMonthSymbols
    let monthSymbol = months?[month!-1]
    let todaysDate = "\(day) \(monthSymbol),\(year)"

    //trim comment
    let comment = textView.text
    let trimmedComment = comment?.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)

    //save new comment
    let commentRef = ref.child("Stores").child(getRef!).child("CommentArray").childByAutoId()

    commentRef.setValue([

        "Comment": trimmedComment,
        "Date": todaysDate

    ])

    self.delegate?.commentSubmitted(true)//delegate
    self.dismiss(animated: true, completion: nil)//dismiss view

}

显然,错误是当我尝试使用“setValue”来设置这些键值对时。 任何想法为什么会发生这种情况?

提前致谢。


My app is crashing when I try to save a comment to Firebase. This code was working perfectly before the Xcode 8 update:

    func saveNewComment(){

    //get date
    let date = Date()
    let calendar = Calendar.current
    let components = (calendar as NSCalendar).components([.day,.month,.year], from: date)

    let year = components.year
    let month = components.month
    let day = components.day

    //format month
    let dateFormatter: DateFormatter = DateFormatter()
    let months = dateFormatter.shortMonthSymbols
    let monthSymbol = months?[month!-1]
    let todaysDate = "\(day) \(monthSymbol),\(year)"

    //trim comment
    let comment = textView.text
    let trimmedComment = comment?.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)

    //save new comment
    let commentRef = ref.child("Stores").child(getRef!).child("CommentArray").childByAutoId()

    commentRef.setValue([

        "Comment": trimmedComment,
        "Date": todaysDate

    ])

    self.delegate?.commentSubmitted(true)//delegate
    self.dismiss(animated: true, completion: nil)//dismiss view

}

Apparently the error is when i try to use "setValue" to set those key value pairs. Any ideas why is this happening?

Thanks in advance.


原文:
更新时间:2022-05-16 20:05

最满意答案

由于您没有使用分区约定,因此您必须手动添加每个分区。

  • 表格位置无关紧要,但为了清楚起见,请保留现状。
  • 我建议使用date类型作为分区或至少使用ISO格式YYYY-MM-DD
  • 我不会使用date作为列名(也不是intstring等)。

PARTITIONED BY (dt date) 

alter table user add if not exists partition (dt=date '2017-03-14') location '/user/hadoop/output/FDQM9N4RCQ3V2ZYT/20170314';
alter table user add if not exists partition (dt=date '2017-03-15') location '/user/hadoop/output/FDPWMUVVBO2X74CA/20170315';
alter table user add if not exists partition (dt=date '2017-03-16') location '/user/hadoop/output/FDPGNC0ENA6QOF9G/20170316';

Since you are not using the partition convention you'll have to add each partition manually.

  • The table location does not matter, but for clarity leave it as it is now.
  • I would recommend to use date type for the partition or at least the ISO format, YYYY-MM-DD.
  • I would not use date as a column name (nor int,string etc.).

PARTITIONED BY (dt date) 

alter table user add if not exists partition (dt=date '2017-03-14') location '/user/hadoop/output/FDQM9N4RCQ3V2ZYT/20170314';
alter table user add if not exists partition (dt=date '2017-03-15') location '/user/hadoop/output/FDPWMUVVBO2X74CA/20170315';
alter table user add if not exists partition (dt=date '2017-03-16') location '/user/hadoop/output/FDPGNC0ENA6QOF9G/20170316';

相关问答

更多

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。