Mac Catalyst应用程序能否管理不同的iOS firestore数据库?如果是,如何配置它

Mac Catalyst应用程序能否管理不同的iOS firestore数据库?如果是,如何配置它,ios,firebase,macos,google-cloud-firestore,mac-catalyst,Ios,Firebase,Macos,Google Cloud Firestore,Mac Catalyst,如何将Mac Catalyst应用程序指向另一个firestore区域,以便2个编辑器用户可以轻松地从笔记本电脑管理数据 背景:我有一个功能齐全的iOS应用程序,使用Google firestore DB。一些用户是编辑,但目前必须选择图像和MP3,并以编辑模式从应用程序上传到手机上。这不是很有效 问题:我发现Mac Catalyst在让iOS/iPad代码和firebase协同工作方面存在很多问题。Mac Catalyst尚未得到谷歌Firebase的支持 谢谢修复 我有一套步骤可以解决创建M

如何将Mac Catalyst应用程序指向另一个firestore区域,以便2个编辑器用户可以轻松地从笔记本电脑管理数据

背景:我有一个功能齐全的iOS应用程序,使用Google firestore DB。一些用户是编辑,但目前必须选择图像和MP3,并以编辑模式从应用程序上传到手机上。这不是很有效

问题:我发现Mac Catalyst在让iOS/iPad代码和firebase协同工作方面存在很多问题。Mac Catalyst尚未得到谷歌Firebase的支持

谢谢

修复

我有一套步骤可以解决创建Mac应用程序来编辑另一个firebase数据库的问题。最后,你可以拉上拉链,将应用程序发送给另一位mac用户运行

1.创建一个新的XCode项目-此处称为trymacatalyst

2.勾选Mac框并点击出现的启用按钮。然后在Mac上运行以确认。然后关闭项目以添加播客

3.从项目的命令行执行初始化pod项目的常规操作

pod init
  • 编辑pod文件,使其看起来像这样:
  • 运行pod安装:

  • 在XCode中打开xcworkspace,并在“我的Mac”上运行以测试这些库的构建

  • 现在将目标firebase安装中的“GoogleService Info.plist”复制到项目中。它应该是这样的:

  • 事实证明,您可以在这里交换任何Google服务信息文件,以指向任何Firebase DB

  • 构建应用程序。它将给出一个错误:
  • 签署“gRPC-C++-gRPCCertificates Cpp”需要一个开发团队。在签名和功能编辑器中选择一个开发团队

  • 因此,在XCode中点亮PODS文件夹,如下所示:并设置团队
  • 现在将一些swift代码FirebaseApp.configure添加到AppDelegate:
  • 11.将代码添加到ViewController以测试连接:运行时,您应在日志中看到“firebase auth已选中-无用户”

    12.向ViewController添加代码以测试与Firebase Auth的连接:

    import FirebaseAuth
    
    class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        if Auth.auth().currentUser == nil {
            print("firebase auth checked - no user")
            Auth.auth().signInAnonymously { (authResult, err) in
                
                if let err = err {
                    print("Cannot login in anon - something bad happened ")
                    print(err)
                }else{
                    if let user = authResult?.user {
                        print(user.uid)
                    }
                }
            }
        }else{
            print("firebase auth checked - we have a user")
        }
    }
    
    }

    运行此操作时,将出现一个错误:

    访问密钥链时出错

  • 要修复此问题,只需转到XCode项目/签名和功能/并添加“密钥链共享”
  • 再次运行,它应该与显示以下内容的日志一起工作:

    gvMPr3Z7Aoh6tOA4lo1S3r9abcde

    这是一个非用户ID。如果您转到Firebase控制台验证部分,此uid将出现。所有firestore命令现在都可以工作。还有最后一步,因为如果我们尝试存档此uid,它将失败

  • 存档会导致以下错误:

    ssl_传输_安全性。h:29:12:在框架“openssl_grpc”中未找到头“x509.h”

  • 为了解决这个问题,我们使用zummenix在github上给出的众所周知的答案:

    步骤如下:

  • 创建mac sh文件“runBORINGSSLPatch.sh”,并使用以下命令(更改和):

    #这很有效
    #CD到文件夹
    #1.使用命令行运行
    #./runBoringSSLPatch.sh
    #2.然后进行归档-直接分发给客户-导出
    #3.按Ctrl/C键切换到stopscript
    #
    #脚本位于:
    # https://github.com/grpc/grpc/issues/20500
    虽然是真的;做
    睡眠0.1
    _无聊的_ssl=$(find/Users//Library/Developer/Xcode/DerivedData/*\
    -名称“BoringSSL GRPC”|头-n1)
    cd“$\u镗孔\u ssl/openssl\u grpc.framework”和&ln-s版本/当前/标题&&
    echo“修补的openssl\u grpc”
    _grpc_core=$(find/Users//Library/Developer/Xcode/DerivedData/*\
    -名称“gRPC核心”|头-n1)
    cd“$\u grpc\u core/grpc.framework”和&ln-s Versions/Current/Headers&&
    echo“修补grpc”
    完成
    
  • 使用以下命令运行此文件:

    ./runBoringSSLPatch.sh

  • 再次存档-它应该可以工作。现在“分发应用程序”、开发人员ID、导出。然后将文件夹发送给其他用户

  • CTRL-C是runBoringSSLPatch程序

  • 谢谢

    约翰·古德施塔特

    import FirebaseAuth
    
    class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        if Auth.auth().currentUser == nil {
            print("firebase auth checked - no user")
            Auth.auth().signInAnonymously { (authResult, err) in
                
                if let err = err {
                    print("Cannot login in anon - something bad happened ")
                    print(err)
                }else{
                    if let user = authResult?.user {
                        print(user.uid)
                    }
                }
            }
        }else{
            print("firebase auth checked - we have a user")
        }
    }
    
         # This works
         # CD to <PROJECT_NAME> folder
         # 1. run using command line
         #  ./runBoringSSLPatch.sh
         # 2. then do archive - distribute directly to customers - Export
         # 3. Ctrl/C to stopscript
         #
         # script is at:
         # https://github.com/grpc/grpc/issues/20500
    
     while true; do
     sleep 0.1
     _boring_ssl=$(find /Users/<YOUR_MAC_LOGON_NAME>/Library/Developer/Xcode/DerivedData/<PROJECT_NAME>* \
         -name "BoringSSL-GRPC" | head -n1)
    
     cd "$_boring_ssl/openssl_grpc.framework" && ln -s Versions/Current/Headers Headers &&
         echo "Patched openssl_grpc"
    
     _grpc_core=$(find /Users/<YOUR_MAC_LOGON_NAME>/Library/Developer/Xcode/DerivedData/<PROJECT_NAME>* \
         -name "gRPC-Core" | head -n1)
    
     cd "$_grpc_core/grpc.framework" && ln -s Versions/Current/Headers Headers &&
         echo "Patched grpc"
     done