使用firebase存放图片等资源
https://firebase.google.com/products/storage?hl=zh-cn
npm init -y
安装相关包
npm install firebase-admin --save
npm install uuid-v4 --save
仍然是在之前 创建的myfirebase进行继续操作就可以
但是需要装一下npm install uuid-v4 --save
在firebase网站,找到storage,开通服务

点击这里复制到 main.js的配置文件当中去

就是下面代买 sotrageBucket 里面xxx的内容·
// 把私钥读进来
// 用firebase管理包进行初始化var admin = require("firebase-admin");var serviceAccount = require("./fir-2aa30-firebase-adminsdk-qsuhb-e553450ef4.json");admin.initializeApp({credential: admin.credential.cert(serviceAccount),storageBucket: "xxxx复制到这里"
});var bucket = admin.storage().bucket();
在终端执行
node main.js
没报错。就说明运行成功
增加上传代码
// 把私钥读进来
// 用firebase管理包进行初始化var admin = require("firebase-admin");var serviceAccount = require("./fir-2aa30-firebase-adminsdk-qsuhb-e553450ef4.json");admin.initializeApp({credential: admin.credential.cert(serviceAccount),storageBucket: "gs://fir-2aa30.appspot.com/"
});var bucket = admin.storage().bucket();var uuid = require('uuid-v4');// 文件上传
async function uploadFile(filename) {await bucket.upload(filename, {// 用zip压缩gzip: true,// 增加一个下载的uuid令牌,这样上传之后,可以直接访问到metadata: {metadata: {firebaseStorageDownloadTokens: uuid()},cacheControl: 'public, max-age=31536000',},})console.log('${filename} uploaded.');
}uploadFile('./bea.png').catch(console.error);
确保当前文件夹内有 bea文件

上传bibi代码
// 把私钥读进来
// 用firebase管理包进行初始化var admin = require("firebase-admin");var serviceAccount = require("./fir-2aa30-firebase-adminsdk-qsuhb-e553450ef4.json");admin.initializeApp({credential: admin.credential.cert(serviceAccount),storageBucket: "gs://fir-2aa30.appspot.com/"
});var bucket = admin.storage().bucket();var uuid = require('uuid-v4');// 文件上传
async function uploadFile(filename) {await bucket.upload(filename, {// 用zip压缩gzip: true,// 增加一个下载的uuid令牌,这样上传之后,可以直接访问到metadata: {metadata: {firebaseStorageDownloadTokens: uuid()},cacheControl: 'public, max-age=31536000',},})console.log('${filename} uploaded.');
}uploadFile('./bibi.png').catch(console.error);
上传成功展示

下载图片代码
将bea图片下载下来,并命名为dl
// 把私钥读进来
// 用firebase管理包进行初始化var admin = require("firebase-admin");var serviceAccount = require("./fir-2aa30-firebase-adminsdk-qsuhb-e553450ef4.json");admin.initializeApp({credential: admin.credential.cert(serviceAccount),storageBucket: "gs://fir-2aa30.appspot.com/"
});var bucket = admin.storage().bucket();var uuid = require('uuid-v4');// 文件下载// 把私钥读进来
// 用firebase管理包进行初始化var admin = require("firebase-admin");var serviceAccount = require("./fir-2aa30-firebase-adminsdk-qsuhb-e553450ef4.json");admin.initializeApp({credential: admin.credential.cert(serviceAccount),storageBucket: "gs://fir-2aa30.appspot.com/"
});var bucket = admin.storage().bucket();
var uuid = require('uuid-v4');// 文件下载
async function downloadFile(srcFilename, destFilename) {const options = {// 文件下载到的路径destionation: destFilename,};// Downloads the fileawait bucket.file(srcFilename).download(options);console.log(`${srcFilename} downloaded to ${destFilename}.`);
}
downloadFile('bea.png', 'dl.png').catch(console.error);
执行 node.main.js
列出服务器文件
// 把私钥读进来
// 用firebase管理包进行初始化var admin = require("firebase-admin");var serviceAccount = require("./fir-2aa30-firebase-adminsdk-qsuhb-e553450ef4.json");admin.initializeApp({credential: admin.credential.cert(serviceAccount),storageBucket: "gs://fir-2aa30.appspot.com/"
});var bucket = admin.storage().bucket();
var uuid = require('uuid-v4');// 列出服务器文件列表
async function listFiles(){const [files] = await bucket.getFiles();console.log('Files:');files.forEach(file => {console.log(file.name);});
}listFiles().catch(console.error);
删除服务器文件
删除bea.png这个文件
// 把私钥读进来
// 用firebase管理包进行初始化var admin = require("firebase-admin");var serviceAccount = require("./fir-2aa30-firebase-adminsdk-qsuhb-e553450ef4.json");admin.initializeApp({credential: admin.credential.cert(serviceAccount),storageBucket: "gs://fir-2aa30.appspot.com/"
});var bucket = admin.storage().bucket();
var uuid = require('uuid-v4');// 文件删除
async function deleteFile(filename) {await bucket.file(filename).delete();console.log(`${filename} deleted.`);
}deleteFile('bea.png').catch(console.error);
只有开通会员才能使用
https: / /firebase. google.com/ products/ functions
npm init -y
npm install firebase-function@latest firebase-admin@latest --save
npm install uuid-v4 --save
firebase init functions
firebase init emulators
nano functions/package.json
在package.json
查看 package.json
却把这三个包安转了

初始化本地工程 和 本地模拟器
本地工程写好后 用于 部署到线上
本地模拟器 模拟 线上功能,方便我们调试
firebase init functions 初始化本地工程

选javaScript
下面默认
完成后,帮助本地建立 function 云函数 文件夹
在里面初始化 三个文件

firebase emulator
初始化本地化模拟器
选择功能

其余 默认就好了
设置完后
看一下

记得云目录下。查看支持 node的版本
cat funtions/package.json


查看本地 local的版本
node -v
然后 修改上面配置的node 后面12的数字为 对应版本

这里是12 就不用改了
虽然系统初始化,会给我们默认一个index.js在functions里面的文件
但是我们需要自己重新写一下

代码内容解释
在哪个时区接受内容
firebase emulators:start --project=default
在本地启动模拟器


观察上面url的构成
项目名 + 时区 + 函数名
control + c 暂停文件
编辑index文件
需要初始化环境才能访问

然后下面就可以访问数据库了

获取users表的前十条数据,然后循环输出
运行
firebase emuLators:start --project=default
访问界面
发现为空
为什么,因这里连接的是本地数据库
而不是网上数据库
所以为空
有两个选择,1:本地数据库添加数据
2. 直接部署上线,就连接线上数据库了
firebase deploy --only functions

IOS + Firestore联合开发
pod工具安装
pod的官网
https://cocoapods.org/
https://cocoapods.ong/
安装
sudo gem install cocoapods
这里安装不上去
可以用brew安转
brew install cocoapods
安转完 检查版本
pod --version
参考链接
https://juejin.cn/post/6950518188798902286
com.komavideo.myapp
访问firebase 网站
https://console.firebase.google.com/project/fir-2aa30/overview?hl=zh-cn



GoogleService-Info.plist
如果是之前下载过,后面忘记了,可以进行第二次下载



就可以看到这个界面
然后 下载




创建项目后
将 配置的google文件移动到 app目录下

在终端进入 myapp进行初始化
cd Desktop/myapp/
初始化为工作区
pod init
如果出现初始化失败 参考这个链接解决问题
https://developer.apple.com/forums/thread/668456

编辑podfile文件
open Podfile


报错参考:
https://stackoverflow.com/questions/74327864/pod-install-error-unable-to-determine-the-platform-for-the-adewolefarmap
执行pod install 进行安转
后序还是报错
是ruby版本问题
mac默认ruby版本不能修改
需要下载新的ruby版本到电脑中
brew install chruby ruby-install
ruby-install ruby
参考
https://stackoverflow.com/questions/51126403/you-dont-have-write-permissions-for-the-library-ruby-gems-2-3-0-directory-ma
后面需要修改zsh的配置
但是 会遇到 无权限修改
因此 需要修改 zshrc的权限
然后 才可以修改zshrc的内容
cd ~
vim .zshrc
sudo chmod +x ~/.zshrc
https://stackoverflow.com/questions/64291625/zsh-permission-denied-users-macbookpro-zshrc
我真的服了
还是重新安装修改zshrc路径
brew install ruby
sudo vi .zshrc
把下面这一行添加进去
export PATH="/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/3.2.1/bin:$PATH"
~
~
~
~
~
重启 zshrc
source ~/.zshrc
检查正在使用的ruby路径
which ruby
检查ruby版本
ruby -v
安装Ruby版本管理器rvm
curl -L https://get.rvm.io | bash -s stable
Install cocoapods
sudo gem install cocoapodspod setup
参考
https://stackoverflow.com/questions/65199227/realm-requires-cocoapods-version-1-10-which-is-not-satisfied-by-your-cur
这时候再返回去执行pod install
就发现不报错了
重新打开Xcode
找到文件
这次选worksapce结尾

编译

写代码 读取 googleinfo配置文件的私钥
连接云服务firebase
因为新生成的Xcode项目已经不在有Deleegate.swift配置文件了
这些旧视频真的害人啊!!!!!!
20分钟搞了一下午都是bug
参考
https://www.jianshu.com/p/94747520c05b
我不太懂swift语言,后面没法写了
等学了之后在更新吧