You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求@nativescript/firebase-firestore在iOS端的可用工作示例

NativeScript Angular 中 Firebase Firestore iOS 兼容问题求助

已执行操作

  • 安装Firebase依赖:
    npm install @nativescript/firebase-core
    npm install @nativescript/firebase-firestore
    
  • 在空白项目中添加初始化代码:
    import { firebase } from '@nativescript/firebase-core'
    import '@nativescript/firebase-firestore'
    const firestore = firebase().firestore()
    
  • 已在build.xcconfig中配置部署目标:IPHONEOS_DEPLOYMENT_TARGET = 11.0;

问题

iOS端始终因兼容问题无法正常运行,调整部署目标后仍未解决,求可用的完整工作示例。

项目依赖配置(package.json)

{  
  "name": "fb3",  
  "main": "./src/main.ts",  
  "version": "1.0.0",  
  "private": true,  
  "dependencies": {    
    "@angular/animations": "~15.0.0",    
    "@angular/common": "~15.0.0",    
    "@angular/compiler": "~15.0.0",    
    "@angular/core": "~15.0.0",    
    "@angular/forms": "~15.0.0",    
    "@angular/platform-browser": "~15.0.0",    
    "@angular/platform-browser-dynamic": "~15.0.0",    
    "@angular/router": "~15.0.0",    
    "@nativescript/angular": "~15.0.0",    
    "@nativescript/core": "~8.4.0",    
    "@nativescript/firebase-core": "^2.5.2",    
    "@nativescript/firebase-firestore": "^2.5.2",    
    "@nativescript/theme": "~3.0.2",    
    "rxjs": "~7.5.0",    
    "zone.js": "~0.11.5"  
  },  
  "devDependencies": {    
    "@angular-devkit/build-angular": "~15.0.0",    
    "@angular/compiler-cli": "~15.0.0",    
    "@nativescript/ios": "8.3.3",    
    "@nativescript/types": "~8.4.0",    
    "@nativescript/webpack": "~5.0.12",    
    "@ngtools/webpack": "~15.0.0",    
    "typescript": "~4.8.4"  
  }
}

可行工作示例及修复步骤

1. 对齐iOS依赖版本

当前@nativescript/ios(8.3.3)与@nativescript/core(8.4.0)版本不匹配,先升级iOS依赖:

npm install @nativescript/ios@8.4.0 --save-dev

2. 规范Firebase初始化流程

不要在全局直接初始化,建议在Angular根模块的初始化钩子中完成,确保依赖加载完全:

// src/app/app.module.ts
import { NgModule, OnInit } from '@angular/core';
import { NativeScriptModule } from '@nativescript/angular';
import { firebase } from '@nativescript/firebase-core';
import '@nativescript/firebase-firestore';
import { AppComponent } from './app.component';

@NgModule({
  declarations: [AppComponent],
  imports: [NativeScriptModule],
  bootstrap: [AppComponent]
})
export class AppModule implements OnInit {
  ngOnInit() {
    // 初始化Firebase核心
    const firebaseApp = firebase.initializeApp();
    // 初始化Firestore并测试连接
    const firestore = firebaseApp.firestore();
    firestore.collection('test-collection').get()
      .then(snapshot => console.log('Firestore连接成功,文档数:', snapshot.size))
      .catch(err => console.error('Firestore连接失败:', err));
  }
}

3. 补充iOS权限配置

在App_Resources/iOS/Info.plist中添加网络访问权限(Firestore必需):

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
</dict>
<key>NSLocalNetworkUsageDescription</key>
<string>需要访问网络以连接Firebase服务</string>

4. 清理缓存后重新构建

# 清理依赖缓存
rm -rf node_modules package-lock.json
npm install
# 清理iOS构建缓存
ns clean ios
# 重新运行项目
ns run ios

内容的提问来源于stack exchange,提问作者esjot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 22:50:23