首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我们弃用 Firebase

的确,纯从性能上讲,在 AWS/Azure/ GCP 上构建定制化原生服务包优于 Firebase 套件。但是,当我们考虑到开发时间和维护成本Firebase 通常是一个合乎逻辑选择。...GCP 偏向之一:通过移除 Firebase 特性迫使人们迁移到 GCP 在过去几个月中,Firebase 去掉了仪表板 Cloud Function 日志。...对于这个问题,K-Optional Software 几乎在同一间收到了多个关于项目(不是我们项目)咨询请求,一切都表明,是 API 突然变化造成了麻烦。...我考虑了以下两种变通方法: 使用单个基于事件名称调用条件逻辑(如使用事件分派器) Cloud Function。...无论如何,Google Cloud Console 是添加此权限唯一方法。 尽管 Firebase 开发有所下降,但我最近还是经常在这个权限仪表板上看到自己。

32.5K30

应用上云2小烧掉近50万,创始人:差点破产,简直噩梦

简介:本文讲述了我们在首款产品上市之前就差点破产、最后幸存下来并从中汲取教训故事。 2020年3月,COVID上市,我们初创公司Milkie Way也遭受了巨大打击,几乎被关闭了。...两个小时后,它价格略低于$ 72,000。 到了这个时候,我和我团队正在通话,我处于完全震惊状态,对下一步该怎么做绝对一无所知。在此过程,我们已经禁用了计费功能,并关闭了所有服务。...Google在大多数文档建议使用预算和自动关闭云功能。好吧,猜猜是什么,到中断功能触发或通知云用户,损坏可能已经完成了。 结算大约需要一天时间,因此这就是我们第二天注意到收费原因。 3....像其他任何小型开发人员一样,我在聊天,咨询,冗长电子邮件和错误上花费了无数时间。在我下一篇有关如何处理事件文章,我想分享一下在此事件期间发送给Google文档/验尸报告。 ?...这些指标仅可使用90天,而我们从这次事件丢失了指标(这些天Firebase和Cloud Run使用情况发生了巨大变化),否则,我很乐意在本文中分享它们。 7 我们还活着 ?

42.7K10
您找到你想要的搜索结果了吗?
是的
没有找到

Flutter 日志最佳实践

通常,开发者只需要适量日志,忽略冗长日志。但是,如果事情不起作用,你可能需要检查更详细事件发布程序时,你可能只需要记录错误和其他重要事件。...在不需要时候关闭日志 在开发环境,你需要检查比生产环境更多日志 -- 所以在生产中不要记录不必要信息。生产环境应用可能比调试应用在更多设备运行。...连接 Crashlytics Firebase’s Crashlytics 服务允许开发者分析应用程序崩溃和特殊事件。...尽管崩溃属于极端事件,但是 Crashlytics 还支持将应用自定日志发送到 Firebase Crashlytics 控制台。...总结 本文讨论了 Flutter 项目中日志最佳实践。我们还学习了如何使用一个包创建简易解析日志,考虑了日志等级,并介绍了如何使用 Crashlytics 和类似的工具来持续获取日志。

4.7K20

跟上脚步,进入后台执行新时代

: (1) 应用待机群组: 限制非活跃应用对设备资源调用; (2) 后台限制: 系统检测到应用出现不良行为时,系统会向用户询问是否要限制该应用在后台访问设备资源; (3) 省电助手功能优化。...您还可以添加任务执行约束条件,例如:设备空闲或充电才可以触发,或者内容提供程序发生变更才可以运行。...以上传日志为例,您需要依次创建以下两个工作请求,才可以将压缩后日志文件上传至服务器: 第一步:压缩文件。在此步骤,您可以添加约束条件 “设备充电,任务才可以被执行”。...如果任务由外部事件触发且运行时间较长,例如同步新数据,请先使用 Firebase Cloud Messaging 通知您应用,然后再调用 WorkManager 创建同步数据工作请求。...如果应用需要立刻执行一个由用户发起任务,即使用户退出应用或关闭屏幕 (如音乐/视频重放或者导航) 也不会影响任务执行,请您使用前台服务。(我们将在下一篇连载深度剖析该使用案例,敬请期待!)

2.5K30

Firebase In-App Messaging 应用内消息

什么是应用内消息 借助 Firebase In-App Messaging,可以向应用活跃用户发送有针对性、且符合情景消息来鼓励他们使用关键应用功能,从而吸引这些用户。...举例:玩游戏通过某个关卡发送应用内消息促使他们完成重要应用内操作 应用内消息可以自定义,使其显示为卡片、横幅、模态窗口或图片,并设置触发器,使其在合适时机出现 In-App Messaging 集成...iOS、Android、flutter 相关处理,详情可见 In-App Messaging 用途 通过 Firebase 控制台可以修改消息样式、定位和推送时间 Firebase In-App Messaging...宣传活动名称:用于宣传活动报告,不会显示在消息 宣传活动说明:用于宣传活动报告,不会显示在消息 可以定义多维度多角度受众群体 应用内消息还支持多语言 Snip20230915_24.png 时间安排...可以是默认事件或自定义事件,应用内消息会在指定事件触发 设置每台设备推送频率限制 Snip20230915_27.png 转化事件 应用内消息将转化为事件进行统计 Snip20230915

27510

Google无视用户隐私设置,暗中收集Android位置数据

许多人都知道智能手机会追踪他们位置,但是,在已经主动关闭了定位服务,且没有使用任何应用程序,甚至都没有插入运营商SIM卡情况下,你觉得手机还会被定位吗?...尽管关于单个基站位置信息只能提供移动设备实际位置近似值,但是相关公司可以使用多个基站进行多点定位,使用此方法,在城市精度会极大提高,因为城市里基站更加密集。...,且默认情况下Firebase云消息服务是在安卓手机上自动运行。...此外每当在新基站进入手机连接范围,在打开蜂窝数据连接或者已经连接wifi情况下,其数据也会被发送给Google;安卓设备连接到WiFi网络,即使他们没有安装SIM卡,手机也会将当前基站位置发送给...Google隐私政策涵盖了位置共享,即公司将从使用其服务设备收集位置信息,但并没有表示在停用位置服务后会继续收集来自安卓设备数据: 您使用Google服务,我们可能会收集并处理有关您实际位置信息

1.8K60

如何用 Android vitals 解决应用程序质量问题

发生冻结,如果你应用位于前台,会弹出对话框让用户选择关闭应用或等待响应。从用户角度来看,这种行为与应用崩溃一样糟糕。...但是,有一些重要事件需要唤醒 CPU 并提醒用户,例如,闹钟响起或有新聊天消息到达。这些警报可以通过唤醒警报(wakeup alarm)来处理,但正如我将要解释那样,这并不是必须。...我如何检测 ANR 原因? 查找 ANR 原因可能会非常棘手,就拿 URL 类来说吧。 你觉得确定两个 URL 是否相同 URL#equals 方法是否会被阻塞?...在应用程序启动使用 StrictMode#setThreadPolicy 可以自定义你想要检测内容,包括磁盘和网络读写,甚至可以通过 StrictMode#noteSlowCall 在应用程序触发自定义慢速调用...一旦你消除了主线程阻塞调用,记得在将你应用程序发布到 Play Store 之前关闭 StrictMode。

2.2K10

Android vitals 帮您解决应用质量问题

在界面冻结,若您应用在前台运行,会出现对话框提醒用户 “关闭应用” 或者 “等待响应”。对用户而言,此类行为和应用崩溃一样糟糕。... Android vitals 显示过度唤醒,您应采取何种对策? 为了解决过度唤醒问题,您须要确认应用在什么地方设定了唤醒闹钟,然后降低这些闹钟触发频率。...它又是怎么影响到用户呢? 对用户而言,ANR 就是指他们试图与应用进行交互,但界面卡住事件。界面卡屏几秒后,会出现对话框让用户选择继续等待或者强行停止应用。...应用程序无法响应常见原因 如上文所述,当应用进程影响到主线程,ANR 事件会被触发,而导致这种阻塞现象原因各有不一,较为常见有: 在主线程上执行磁盘或者网络 I/O。...如何检测应用程序无法响应原因 寻找触发 ANR 原因不容易,我们拿 URL 类举个例子: 您想看到 URL#equals (判断两个 URL 是否相同方法) 阻塞线程吗?

1.4K10

如何在.NET应用程序中分析CPU使用率过高问题

考虑到这样现实情况,当我们在受控环境工作,事情通常会按计划进行。假设就是我们开发机器或我们可以完全访问集成环境。我们可以使用工具来分析影响我们代码和软件不同变量。...如前所述,软件上线,可能会出错,并且代码可能会以我们未计划方式开始执行。当我们不得不处理问题而又无法调试或确定发生了什么情况,下我们该怎么办? ?...,为什么会出现这个问题以及我们如何解决它。...无论我们是否在事件查看器记录了一些异常,它们都没有提供足够数据来进行分析。这就是为什么我们决定更进一步并收集更多数据原因,因此当事件再次发生,我们将做好准备。...静态方法和属性无法访问其包含类型非静态字段和事件,并且除非在方法参数显式传递了实例变量,否则它们无法访问任何对象实例变量。 这意味着静态成员属于类型本身,而不是对象。

2.4K30

等保2.0标准个人解读(三):安全区域边界

,实现对网络攻击特别是新型网络攻击行为分析; d) 检测到攻击行为时,记录攻击源 IP 、攻击类型、攻击目标 、攻击时间,在发生严重入侵事件应提供报警。...2)用IP包ID标识跳变来确认用户私接设备台数。 3)用HTTP协议User-Agent字段来检测私接上网智能设备。 4)根据随身WIFI和免费WIFI后门,来识别随身WIFI。...如何回怼 要避免猜测其他公司安全问题根本原因,可以这样说:“在获得更多信息之前,我不想对X公司事件进行猜测,但当我知道更多信息,我会继续跟进了解情况。”...问题分析 一个事件或事故已经发生,并且董事会已经知道或者CISO正在通知他们,就会被问到这类问题。...如何回怼 如果你是事件当事人或负责人,那么第一间不是甩锅,而是做事,最快抑制,最大程度止损。当然,某些特殊环境公司可能不太样。 安全事件是不可避免,所以要实事求是。

4.2K22

如何用HMS Nearby Service给自己App添加近距离数据传输功能

们生活似乎经常能遇到这种尴尬场景,近距离数据传输功能是用户一个痛点。...仅两端都接受连接,连接才能建立。   传输数据阶段:建立连接后,双端进行数据交换。 连接建立后,双端均可以调用sendData()发送数据给对端。...停止广播后,广播端不可以接收来自发现端连接请求。 2.4.4 停止扫描   需要停止扫描,调用stopScan()。停止扫描后,发现端仍可以向已发现设备请求连接。...2.5.2 确认连接   发现端发起连接后,通过回调connectCallbackonEstablish()方法将连接建立事件通知给双方。...仅双方都接受连接,连接才会建立成功。如果一方或双方都选择拒绝,则连接失败。无论哪种方式,连接结果都会通过onResult()方法通知。

62930

Angular v18 现已推出!

handleClick例如,当用户单击上面的按钮,由于调度程序合并,Angular 将仅运行一次更改检测。在我们文档中了解更多信息。...开发者预览版信号 API在 Angular 版本 17.1 和 17.2 ,我们宣布了新信号输入、基于信号查询和新输出语法。在我们信号指南中了解如何使用 API。...从 v18 开始,事件调度在使用混合渲染事件回放提供支持。大多数开发人员不会直接与事件调度进行交互,因此让我们研究一下为什么事件回放很有用。您可以在下面找到一个简单电子商务网站模拟。...我们引入了人为加载延迟来模拟非常慢网络连接。想象一下,页面正在加载并且尚未补水,用户想要将多个耳机添加到他们购物车。如果页面尚未冻结,因此不是交互式,则所有用户事件都将丢失。...在 Angular 中使用事件调度进行事件回放事件重播功能在开发者预览版 v18 可用。

8110

Flutter 3.7 新特性:介绍后台isolate通道

在我帮助谷歌其他团队使用 Flutter 过程,随着产品演进,最终会不可避免地遇到 root isolate 瓶颈。 因此,我们需要确保在框架优化,并为开发者提供工具使其在必要做更少事。...下面是后台 isolate 一个人为用例: 试想,一个应用程序可通过人工智能根据文本提示生成高分辨率图像。用户之前创作都被存储在 Firebase Cloud ,需求是用户可以用手机随时分享创作。...在此示例,后台 isolate 至少使用了 3 个插件,一个用于从 Firebase Cloud Storage 请求数据;接着保存到手机相册,保存完毕发送本地通知告诉用户。...SharedPreferences.getInstance(); print(sharedPreferences.getBool(‘isDebug’)); } 技术细节 下面是平台通道工作原理概述: 平台通道被调用产生结果将通过硬编码转到...这是令我惊讶,为了在引擎销毁关闭平台通道,我们应该知道与引擎关联后台 isolate,否则后台 isolate 可能与正在销毁引擎通信,这样做效果可以在最终 API 中看到,必须使用 RootIsolateToken

4.1K40

IE 浏览器 DOM 树结构概览(上)

作者:HausenChen 1.1 引子 作为WiFi安全一部分,近年来WiFi安全事件层出不穷,而其中ARP攻击事件更加普遍,越来越成为移动互联网时代手机用户一大痛点。...如果我们产品要做一个功能,要求能够检测出这种ARP攻击,在用户连接WiFi时候能第一间给予提示,让用户免遭损失。针对这样安全方面的测试需求,我们应该如何测试呢?...ARP协议原理存在一个可以被利用漏洞:A没有发起ARP Request,其他人也可向A发送一个ARP Reply。...A收到一个ARP Reply,不会质疑,而是直接对本地ARP缓存表进行更新,将应答IP和MAC地址存储在ARP缓存表。...1.4 WiFi安全测试小结 作为一个测试人员,在接到一个安全测试测试需求,应该如何下手?

1.5K00

servicecomb-saga源码解读

超时场景 超时场景下,已超时事件会被alpha定期扫描器检测出来,与此同时,该超时事务对应全局事务也会被中断。 ?...saga执行事件 收到补偿事件后执行补偿方法,并记录saga补偿执行事件 后面在解读时会逐一说明上述4大功能在代码上是如何实现。...,下面看下这三个annotation具体是如何工作。...通过Server streaminggRPC,从alpha收到补偿事件后,调用消息处理器,消息处理器则会执行对应补偿方法,并记录saga补偿执行事件,代码如下: incubator-servicecomb-saga...在记录saga事件需要将Compensable方法执行参数序列化保存下来,用于后面调用补偿方法使用,这里使用了在java领域比较高效kryo序列化技术,代码如下: incubator-servicecomb-saga

1.5K10

我们能用云函数做什么?

Firebase 云函数使开发人员能够访问Firebase和Google Cloud一些事件,以及可扩展计算来运行代码以响应处理这些事件。...Firebase以独特方式使用云函数来满足其独特需求,典型运用领域: 发生了一些新奇有趣事情通知用户 执行实时数据库清理和维护 在云上执行密集任务,而不是在本地应用程序上 与第三方服务和.../取消订阅用户发送确认电子邮件 用户完成注册后发送欢迎邮件 当用户创建新帐户发送短信确认 等等 二、实时进行数据库清理和维护 使用云函数数据库处理事件,可以根据用户行为修改实时数据库,保持系统更新和清洁...例如,在基于实时数据库聊天室应用程序,您可以监视写入事件,并从用户消息擦除一些带有敏感词或不恰当文本。...下面是它工作原理图: 函数数据库事件处理程序监听特定路径上写入事件,并检索所有聊天消息事件。 该函数处理文本以检测和擦除敏感词或不恰当语言。 该函数将更新文本重新写回数据库。

16.7K40

音视频直播技术--Android视频采集(Camera2)

Camera是以前老 API ,从 Android 5.0(21)之后就已经放弃了。我今天主要给大家介绍一下如何使用 Camera2 进行视频采集。...Surface:存放数据类,在实际操作,我们只要把 surface告诉CaptureRequest.Builder,有数据到来之后,系统底层就会将数据存放到 surface。...用于摄像头管理,如检测系统摄像头、打开系统摄像头,获取摄像头参数。 CameraCharacteristics:用于管理摄像头特性。...系统会根据打开 Camera 设备状态结果,回调三个不同方法。 onOpened:表式成功打开了 Camera 。 onDisconnected:表式关闭了与 Camera 连接。...摄像头被打开之后,系统就会回调 CameraDevice.StateCallback 类 onOpened 方法,在该方法 APP 可获取 CameraDevice 对象。

1.9K20

移动平台下Socket几个问题

假设服务器突然断电了,客户端是不知道服务器端已经无法连接了,还会认为可以发送数据给服务器端。通常都是使用心跳包进行检测来双方连接是否还存在。...wifi切到2G/3G,后台切换至前台后立马触发关闭回调函数。...后端处理是这样,建立socket时会随机生成一个密钥串,客户端断开连接,拿这个密钥串向服务器进行验证,但是服务器验证时有个特殊判定,如果请求生成密钥串客户端IP与重连客户端IP不一致,则认为是非法请求...也就是说2G切换至WIFI,IP变了,服务器其实是直接将连接断开了,但为什么没触发关闭回调函数,这个或许是那个Android系统版本bug吧 后来想办法有二个: 1、针对Android平台,记录连接网络类型...,然后切换至前台再获取网络类型,如果发现二次网络类型不一致就提示需要重新登录游戏了; 2、记录建立连接IP地址,切换至前台再获取IP,如果这二个IP不致,也认为是需要重登录游戏了,因为无论你拿什么密钥串都将无法再登录游戏

2.1K40

Android4.4.2源码分析之WiFi模块(一)

已经写了几篇关于Android源码,源码代码量太大,所以如果想分析某个模块可能不知如何下手,说一下思路 1,分析源码英文阅读能力要够,想要分析某个模块一般找模块对应英文,就是模块 2,找到之后首先查看清单配置文件...readPermissionsFromXml(File f)传入xml文件进行解析获取到设备所支持permission 3>,接下来获取到WiFi管理类对象mWifiManager,用于开启...广播所监听事件有 //WiFi状态发生改变时会发送该广播 mIntentFilter = new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION...(action)) { //WiFi状态生改变去更新switch状态,WiFi状态存在于WifiManager.EXTRA_WIFI_STATE  ...switch进行设置赋值,起开关保护作用,保证点击switch时候先将switch状态设置成功再进入点击事件方法 private void setSwitchChecked(boolean checked

74110
领券