新 Swift 项目上的 FIreStore - FIRAuth getUID 实现

Posted

技术标签:

【中文标题】新 Swift 项目上的 FIreStore - FIRAuth getUID 实现【英文标题】:FIreStore on New Swift Project - FIRAuth getUID implementation 【发布时间】:2018-04-30 13:24:32 【问题描述】:

我一直试图让 FireStore 在 Swift 上工作,但遇到“未设置 FIRAuth getUID 实现”。我无法获取我的数据。我从一个测试应用程序开始......全新的 Firestore 项目。 Swift 中的新 ios 项目。新的一切。我只是想读一些数据。这就是我目前所拥有的......

xCode 版本 9.3 (9E145) FireStore 规则

service cloud.firestore 
   match /databases/database/documents 
   match /document=** 
      allow read, write;
    
  

AppDeligate.swift

import UIKit
import Firebase
func application(_ application: UIApplication, 
 didFinishLaunchingWithOptions launchOptions: 
 [UIApplicationLaunchOptionsKey: Any]?) -> Bool 
    FirebaseApp.configure()
    return true

ViewController.swift

  import UIKit
  import Firebase
  class ViewController: UIViewController 
      override func viewDidLoad() 
          super.viewDidLoad()

          let db = Firestore.firestore()
              //  this gives
              // [Firebase/Core][I-COR000025] FIRAuth getUID implementation wasn't set.
              // and I cant read data after ward.
      

注意:将 Firebase 添加到您的 iOS APP。 第 5 步...运行您的应用程序以验证安装 check_circle 恭喜,您已成功将 Firebase 添加到您的应用中! 所以我知道应用程序连接正常。

===========================

所以我访问了 FireStore 文档: https://firebase.google.com/docs/firestore/quickstart

我将此代码添加到 ViewCONtroller.swift 。

导入 UIKit 导入 Firebase 类视图控制器:UIViewController

覆盖 func viewDidLoad() super.viewDidLoad()

let db = Firestore.firestore()
    //  this gives
    // [Firebase/Core][I-COR000025] FIRAuth getUID implementation 
        wasn't set.
    // and I cant read data after ward.

// Add a new document with a generated ID
var ref: DocumentReference? = nil
ref = db.collection("users").addDocument(data: [
    "first": "Ada",
    "last": "Lovelace",
    "born": 1815
])  err in
    if let err = err 
        print("Error adding document: \(err)")
     else 
        print("Document added with ID: \(ref!.documentID)")
    

我得到了这个错误...

2018-04-30 09:17:34.410768-0400 t5[32887:825090] 4.10.0 - 
[Firebase/Core][I-COR000025] FIRAuth getUID implementation wasn't 
set.
2018-04-30 09:17:34.625631-0400 t5[32887:825100] TIC Read Status 
[1:0x0]: 1:57
2018-04-30 09:17:34.625748-0400 t5[32887:825100] TIC Read Status 
[1:0x0]: 1:57
==============================================
Error adding document: Error Domain=FIRFirestoreErrorDomain Code=7 
"Missing or insufficient permissions." UserInfo=io.grpc.HeadersKey=
    "alt-svc" = "hq=\":443\"; ma=2592000; quic=51303433; 
quic=51303432; quic=51303431; quic=51303339; 
quic=51303335,quic=\":443\"; ma=2592000; v=\"43,42,41,39,35\"";
    "content-disposition" = attachment;
    date = "Mon, 30 Apr 2018 13:17:35 GMT";
    , NSLocalizedDescription=Missing or insufficient permissions., 
    io.grpc.TrailersKey=
        "content-disposition" = attachment;

========================================= 我怀疑存在身份验证问题,但我的规则设置为开放式。我完美地遵循了指示。我觉得我必须拥有某种 Auth 证书。 也就是说,最终,我要做的就是从该站点读取数据。 那么,有什么想法是我做错了吗?

==============================================

我添加了更多 Post data 和 Read Data 。而且还在...

`===============================

=====btn READDATA ======= 获取文档时出错:Error Domain=FIRFirestoreErrorDomain Code=13“发生内部错误。” UserInfo=NSLocalizedDescription=发生内部错误。

2018-04-30 12:01:00.004048-0400 t6[342:28839] 状态栏找不到缓存的时间字符串图像。正在渲染。

=====btn POSTDATA ======= 添加文档时出错:Error Domain=FIRFirestoreErrorDomain Code=7“缺少权限或权限不足。”用户信息=io.grpc.HeadersKey= "alt-svc" = "hq=\":443\"; ma=2592000; quic=51303433; quic=51303432; quic=51303431; quic=51303339; quic=51303335,quic=\":443\"; ma =2592000; v=\"43,42,41,39,35\""; “内容处置”=附件; date = "2018 年 4 月 30 日星期一 16:01:01 GMT"; , NSLocalizedDescription=缺少或权限不足。, io.grpc.TrailersKey= “内容处置”=附件; `

【问题讨论】:

搞砸这个更多...我得到... 【参考方案1】:

我解决了这个问题。我的可可豆荚需要更新。实际上我做了一个全新的 Cocoapds 安装,但如果你有这个问题,我建议你做一个 pod 更新。就那么简单。 是的,这是一个愚蠢的错误,但我要感谢给我打​​分的海报。

【讨论】:

以上是关于新 Swift 项目上的 FIreStore - FIRAuth getUID 实现的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中将 Firestore FieldValue 解析为日期

在 Swift 中从 Firestore 中获取文档列表

如何从 Cloud Firestore 上的对象中检索值?迅速

使用 Firebase Firestore 进行分页 - swift 4

Firestore,检测添加到集合中的新文档等

如何使用 swift 有条件地向 Firebase Firestore 中的查询添加另一个过滤器?