寻求@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
相关产品推荐
相关产品推荐

