当前位置: 首页 > 知识库问答 >
问题:

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

龙博
2023-03-14

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

背景:我有一个使用谷歌firestore数据库的完整功能的iOS应用程序。一些用户是编辑,但目前必须选择图片和MP3,并在编辑模式下从手机应用程序上传这些图片和MP3。这不是很有效率。

问题:我看到很多Mac Catalyst stackoverflow在iOS/iPad代码和firebase协同工作方面的问题。谷歌的Firebase还不支持Mac Catalyst。

谢谢

共有1个答案

云默
2023-03-14

固定

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

1.创建一个新的XCode项目-这里称为TryMacCatalyst。

2.在“Mac”框中打勾,然后点击出现的启用按钮。然后在Mac上运行确认。然后关闭项目以添加POD。

3.在项目的命令行中,像往常一样初始化一个pod项目。

pod init

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

现在将目标firebase安装中的'googleService-info.plist‘复制到项目中。它看起来应该是这样的:

结果表明,您可以在这里交换任何Google-Service-Info文件以指向任何Firebase DB。

为“grpc-c++-grpcCertificates-cpp”签名需要一个开发团队。在Signing&Capabilities编辑器中选择一个开发团队。

11.向ViewController添加代码以测试连接:运行,您应该在日志中看到“Firebase auth checked-no User”

import FirebaseAuth
class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    
        if Auth.auth().currentUser == nil {
            print("firebase auth checked - no user")
        }else{
            print("firebase auth checked - we have a user")
        }
    }
}

12.向ViewController添加代码以测试与Firebase身份验证的连接:

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")
    }
}

}

当您运行此操作时,您将得到一个错误:

访问钥匙串时出错。

再运行一次,它应该可以使用显示如下内容的日志:

GVMPR3Z7AOH6TOA4LO1S3R9ABCDE

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

存档会出现错误:

ssl_transport_security.h:29:12:在框架“openssl_grpc”中找不到标头“x509.h”

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

步骤如下:

>

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

         # 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
    

    使用以下命令运行此文件:

    ./runboringsslpatch.sh

    重新归档--它应该能工作。现在‘分发应用程序',开发人员ID,导出。然后将文件夹发送给另一个用户

    CTRL-C runBoringSSLPatch程序。

    谢谢

    约翰·古德施塔特

  •  类似资料:
    • 问题内容: 我有2个数据库(MySql和HSQLDB)。我配置了2个数据源和2个EntityManagerFactory bean。我还可以配置2个对应的JpaTransactionManager bean。 但是我不知道如何指定应使用其中的哪一个来管理具体服务类的事务。我想为此使用注释,但实际上我只能指定txManagers之一: 这种情况下的出路是什么? 问题答案: JpaTransactio

    • 我想在我的Spring Boot应用程序中配置一个进步数据库10.2B连接。 我试图阅读进度文档,但没有找到任何适合我的场景的内容。这是我找到的文档链接:进度文档 我在OpenEdge解决方案中提供了“openedge.jar”驱动程序文件。 但是,我不知道如何使用“pom.xml”中的Maven在Spring Boot中配置不同的DriverClass。 我应该怎么做?我应该创建一个名为“Dat

    • 我是新手。我有一个非常基本的问题,但我试图在谷歌上找到它,但不明白。我的问题是。 在firebase中,谷歌表示: 任何人都可以在这种类型的安全规则中中断,即使是不使用你的应用程序的人。我得到了它。现在,如果我想制作聊天应用或小型社交应用,那么我应该使用什么样的安全规则? 这条规则足以让我的应用程序安全吗?我在下面发帖: 我的应用程序目标是在使用我的应用程序之前通过Firebase身份验证对用户进

    • 我可以理解上面链接中的代码,但我不确定IT管理员如何将配置文件推送到应用程序(在EMM控制台或其他地方)。任何想法都将受到高度赞赏。

    • 我正在研究clojure和Scala之间的互操作。由于java本身现在有lambda,所以我想在数据和如何将函数应用到集合之间进行一个概括 Clojure函数扩展了并概括了上的集合操作 Scala函数扩展了并概括了上的集合操作 Java lambda扩展并概括了上的集合操作 问题: null Clojure、Scala和Java中都有这样的操作:获取集合、将函数应用到该集合并返回新的集合。 所有这

    • 我正在使用kafka主题作为数据流,并使用FlatMapFunction来处理数据。处理包括用更多的数据来丰富来自流的实例,这些数据从数据库获取,执行查询以收集输出,但它感觉这不是最好的方法。 阅读文档,我知道我可以从数据库查询创建数据集,但我只看到了批处理的示例。 我可以使用DataStream和DataSet执行合并/减少(或其他操作)来完成吗? 使用数据集而不是直接访问数据库可以提高性能吗?