使用firebase和SQLCipher

时间:2016-11-10 14:06:30

标签: sqlite firebase sqlcipher

我有一个使用SQLCipher读取和写入加密数据库的应用程序。

想要使用Firebase,我偶然发现了两个问题:

首先,有些......将-l"sqlite3"添加到我的Pods/Target Support Files/Pods-ProjectName/Pods-ProjectName.debug.xcconfig(以及release,ofc)。因此,我的应用程序的SQL失败并显示错误file is encrypted or is not a database

我通过向post_install添加Podfile来解决此问题,该no such table: s2dRmqIds会删除所有配置文件中的内容。

执行此操作后,Firebase SQL启动失败,错误为@Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException { String authToken = request.getHeader(this.tokenHeader); System.out.println(authToken + " ##########################"); String username = flTokenUtil.getUsernameFromToken(authToken); if (username != null && SecurityContextHolder.getContext().getAuthentication() == null) { UserDetails userDetails = this.userDetailsService.loadUserByUsername(username); if (flTokenUtil.validateToken(authToken, userDetails)) { UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken( userDetails, null, userDetails.getAuthorities()); authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); SecurityContextHolder.getContext().setAuthentication(authentication); } } chain.doFilter(request, response); }

AFAIK,没有办法在同一个项目中使用SQLite和SQLCipher,因为它们是互补的。

知道Firebase试图保存在该表中的是什么?或者有多少问题?或者,如果我可以改变存储机制?或者如果它是(已知的)错误?

2 个答案:

答案 0 :(得分:1)

有一个相同的问题,几个小时后,找到了[解决方案]!

enter image description here

  • 转到项目构建设置
  • 搜索其他链接标记
  • 添加行-framework SQLCipher

就是这样!)

现在,Firebase和SQLCipher将共同生活在一起。

答案 1 :(得分:0)

我创建了一个安装后脚本,该脚本从Firebase容器中删除了-l“ sqlite3”其他链接器标记,这很有帮助!

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      xcconfig_path = config.base_configuration_reference.real_path
      xcconfig = File.read(xcconfig_path)
      new_xcconfig = xcconfig.gsub('-l"sqlite3"', '')
      File.open(xcconfig_path, "w") { |file| file << new_xcconfig }
    end
  end
end