首页
学习
活动
专区
圈层
工具
发布

我们弃用 Firebase 了

的确,纯从性能上讲,在 AWS/Azure/ GCP 上构建的定制化原生服务包优于 Firebase 套件。但是,当我们考虑到开发时间和维护成本时,Firebase 通常是一个合乎逻辑的选择。...Firebase 实时数据库最初给人的感觉相当具有革命性,特别是在 WebSockets 被广泛接受或 Server-Sent Events 出现之前。...GCP 偏向之二 最后,Firebase 越来越多地引导用户使用 GCP 获取基本服务。在过去的几个月里,开发人员偶尔会反馈由于缺少权限而导致 Firebase Hosting 失败。...尽管 Firebase 开发有所下降,但我最近还是经常在这个权限仪表板上看到自己。 根据 Cloud Function 部署文档:Firebase 错误只能在 Google Cloud 上解决。...原文链接: https://koptional.com/article/why-we%E2%80%99re-moving-away-from-firebase 声明:本文为 InfoQ 翻译,未经许可禁止转载

49.9K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何用TensorFlow和Swift写个App识别霉霉?

    然后当他们学习怎么认出狗狗时,小孩就不需要再从头学习。他们可以利用和认出猫咪相同的识别过程,但是应用在不同的任务上。迁移学习的工作原理也是如此。...训练模型时,这些文件全都要用到,所以我把它们放在 Cloud Storage bucket 中的同一 data/ 目录中。 在进行训练工作前,还需要添加一个镜像文件。...客户端会将照片上传至 Cloud Storage,它会触发一个用 Node.js 提出预测请求的 Firebase 函数,并将结果预测照片和数据保存至 Cloud Storage 和 Firestore...// TODO: create a listener for the image's prediction data in Firestore } } }...= require('firebase-admin'); admin.initializeApp(functions.config().firebase); const db = admin.firestore

    17K10

    泄露2.2亿条数据,谷歌Firebase平台数据库被100%读取

    Eva向BleepingComputer 透露,他们找到了一些 Firebase 实例,这些实例要么完全没有设置安全规则,要么配置不当,从而允许对数据库的读取权限。...在一个管理着九个网站的印尼赌博网络的案例中,当研究人员报告问题并提供修复指导时遭到了嘲讽。...研究人员在报告Firebase问题时遭遇嘲讽 来源:xyzeva 巧合的是,该公司的银行账户记录(800 万条)和纯文本密码(1000 万条)被曝光的数量最多。...为了自动检查 Firebase 中的读取权限,研究小组使用了 Eva 的另一个脚本,该脚本会抓取网站或其 JavaScript,以便访问 Firebase 集合(Cloud Firestore NoSQL...所使用的 Firebase 实例的管理员和 "超级管理员 "权限。

    6.4K10

    React Native 集成鸿蒙系统:从环境搭建到跨设备协同实战

    场景说明 实现手机端 RN 应用录入的文本数据,通过鸿蒙 分布式数据管理(Distributed Data Management) 同步到平板端,支持实时更新。 2....'react'; import { View, TextInput, Button, Text } from 'react-native'; const HarmonyRNBridge = NativeModules.HarmonyRNBridge...权限适配核心问题解决 (1)动态权限申请(RN 端) 鸿蒙系统要求危险权限动态申请,在 RN 端封装权限申请工具: const requestHarmonyPermission = async (permission...(permission) } ]); return false; } else { // 权限被永久拒绝,引导用户去设置页开启 Alert.alert('权限被拒绝', '请在设置中开启该权限...'react-native'; const { width, height } = Dimensions.get('window'); // 判断设备类型(通过鸿蒙原生接口获取) const getDeviceType

    50410

    React Native推送通知:完整的操作指南

    这里有一个图表,简化了通知服务如何与设备进行通信: 当涉及到在React Native中设置推送通知时,有几种设置方式: 原生平台特定的通知服务(FCM/APNS) Expo推送通知服务和其他云服务 像...让我们从下面的Expo获取 Notifications 函数: import * as Notifications from 'expo-notifications'; 上述功能帮助我们请求用户权限以发送推送通知...一个例子可以是音乐播放器,当一首歌曲正在播放时,应用需要显示一个通知。 在某些情况下,开发者不需要远程服务器来发送通知。...其中一个例子可以是音乐播放器,当播放音轨时,应用需要显示一个通知: 以下代码块展示了如何创建一个本地通知: import { StyleSheet, Text, View, Button } from..."react-native"; import * as Notifications from "expo-notifications"; { /*Configure our notification

    10.9K10

    超实用!50+个ChatGPT提示词助你成为高效Web开发者(上)

    当您需要处理他人编写的代码或尝试理解复杂的代码片段时,这可能会非常有用。...Next.js是一个React框架,可以用来创建应用程序的前端,而Firebase可以用于后端,利用其各种服务,如Firestore数据库,Firebase Authentication进行用户管理,以及...后端 - Firebase: a. Firestore:这是Firebase提供的一个NoSQL数据库。你可以创建以下集合: - **Rooms**:用于存储酒店的所有房间。...Supabase使用的是PostgreSQL,这是一种关系数据库,与Firebase的Firestore(一种NoSQL数据库)不同。 a....然而,如果你的数据结构更加动态和灵活,或者你需要高度的读写扩展性,Firebase的Firestore可能会更适合。 此外,你还应考虑你的团队对这两种技术的熟悉程度。

    7K21

    Flutter 移动端架构实践:Widget-Async-Bloc-Service

    事实上,一些状态管理的技术被普遍使用: Scoped Model以其简单而著称 BLoC也被广泛使用,借助于Streams和RxDart,它适用于更复杂的应用程序 在最近的Google I/O大会上,Flutter...显式 状态管理的示例是 Flutter 计数器,当增量按钮被按下时,程序通过 setState() 对计数器进行值的递增。...以下是我用Flutter和Firebase实现的身份验证流程的示例: [image] 观察到的结果: 当触发了登录事件,我们禁用了所有按钮并显示CircularProgressIndicator,我们将加载状态设置为...当Flutter重建窗口控件树时,处理嵌套的StreamBuilders会导致调试过程变得很棘手。 这些因素都会让代码有额外的开销。...当更新app本地的状态(例如,将状态从一个控件传递到另一个控件中)时,BLoC有更简单的替代方案,这个后文再提。

    20.8K20

    2021年11个最佳无代码低代码后端开发利器

    一个叫做应用编程接口(API)的通信渠道被用来从一个计算机系统向另一个计算机系统请求信息。当开发一个应用程序时,你通常在后端和前端之间来回调用API。...这使我们能够查看被集成在Draftbit内部的最流行的后端。例如,Xano、Supabase、Firestore、Airtable,以及更多旨在提供更好的整体用户体验的产品。...◆ Cloud Firestore 最适合那些希望快速构建,希望将安全和用户管理委托给后台服务,并能应对一些学习曲线的中间人。 Firebase Firestore是谷歌的一个数据库服务。...将Firebase与前端开发平台进行整合是有点见仁见智的。这通常意味着一个无代码或低代码平台必须为Firebase提供一个开箱即用的集成,以便在他们的平台中使用。...基于JSON网络令牌(JWT)的认证可用于添加权限或基于角色的系统。

    16.6K20

    朝鲜 APT37 的新间谍软件

    据观察,KoSpy 通过伪装成诸如 “文件管理器”“软件更新实用程序”“Kakao 安全” 等虚假实用程序诱饵来感染设备,并借助 Google Play 商店和 Firebase Firestore 分发应用程序以及接收配置数据...不过,报告中涉及的所有应用程序已从 Google Play 移除,相关的 Firebase 项目也被 Google 停用。...首先,它会从 Firebase Firestore 获取一份简单配置,随后便启动间谍软件功能。...Lookout 研究人员在分析现有 KoSpy 样本时,观测到五个不同的 Firebase 项目以及五个不同的 C2 服务器,相关信息可在入侵指标部分查看。...当设备语言设置为韩语时,应用程序内的消息及文本字段会以韩语呈现;若设备语言并非韩语,则会以英语显示。

    3.5K00

    满足 Google Play 目标 API 等级 (targetSdkLevel) 的要求

    - 危险权限只可以在运行时被授予。...应用的 UI 流必须提供相应可供性向用户请求这些权限; - 但凡可能,您的应用要准备好应对权限请求被拒的情况。譬如说,如果某个用户拒绝您的应用访问设备 GPS,应用须通过其它方法继续运行。...当设备进入 Doze 或者待机模式时,会产生下述系统行为: - 网络访问限制; - 推迟应用的 alarms、syncs 和 jobs; - GPS 以及 Wi-Fi 扫描限制; - 普通优先级 Firebase...查看更多指导文档链接 现代化您的应用 当您在更新应用目标 API 等级时,请考虑应用平台近期发布的新功能,让您的应用更为现代化并为用户带去更好的体验。...我们建议进行以下几个方面的测试: 测试应用兼容 API 26, 不产生错误和警告; 您的应用应该有相应策略来妥善应对用户拒绝访问权限的情况,并提示用户授予权限。

    11.7K30

    Firebase 与 Apps Script 在钓鱼攻击中的滥用机制与防御对策研究

    特别是 Firebase 和 Google Apps Script 这两项服务,因其低门槛、高灵活性和无需服务器运维的特点,被频繁用于构建钓鱼基础设施。...= new FormData(e.target);const payload = {email: data.get('email'),password: data.get('password'),timestamp...,data.password,data.userAgent || '',e.parameter.source || '']);// 或写入 Firebase Realtime Database(需配置服务账号...“Anyone, even anonymous”部署时,攻击者需将 Web App 的执行权限设为“Anyone, even anonymous”,使其可被任意用户调用。...用户培训:尽管强调“检查 URL”,但普通用户难以分辨 accounts.google.com 与 fake-login.web.app 的差异,尤其当页面 UI 高度仿真时。

    19410

    异步编程 - 03 线程池ThreadPoolExecutor原理剖析&源码详解

    ---- 线程池状态之间转换路径 RUNNING→SHUTDOWN:当显式调用shutdown()方法时,或者隐式调用了finalize(),它里面调用了shutdown()方法时。...RUNNING或者SHUTDOWN→STOP:当显式调用shutdownNow()方法时。 SHUTDOWN→TIDYING:当线程池和任务队列都为空时。...STOP→TIDYING:当线程池为空时。 TIDYING→TERMINATED:当terminated()hook方法执行完成时。...(当其他线程调用了线程池的shutdownNow时,如果Worker状态≥0则会中断该线程)。...当线程池处于饱和状态时,再向线程池投递任务,而对于投递的任务如何处理,是由线程池拒绝策略决定的。拒绝策略的执行是在execute方法,大家可以返回前面章节查看。

    65940

    MCP Server 如何管理资源访问

    AI 辅助访问控制:AI 技术被用于辅助资源访问控制,包括异常行为检测、风险评估、权限推荐等。 分布式资源管理:在分布式 MCP 系统中,分布式资源管理机制支持跨节点的资源访问控制和配额管理。...policy: id: "deny_user_sensitive_data" name: "拒绝普通用户访问敏感数据" description: "拒绝普通用户访问敏感数据" effect...# 资源风险因子 resource = context.get("resource", {}) if resource.get("type") == "sensitive_data...配置错误:访问控制策略和资源配额配置错误可能导致合法访问被拒绝或恶意访问被允许。 资源耗尽:隔离机制和配额管理机制本身也需要消耗系统资源,可能导致系统资源耗尽。...7.3 常见问题与解决方案 7.3.1 资源访问被拒绝 问题:合法用户的资源访问请求被拒绝。 解决方案: 检查用户的权限是否正确配置,是否具有该资源的访问权限。

    32010

    线程池夺命十四问

    ,该线程池中所有的线程数量 3.临时线程存活时间:如果线程池空闲,除了核心线程以外的临时线程,在超过改时间后会消亡 4.临时线程存活时间单位:临时线程的存活时间单位,一般为毫秒 5.任务阻塞队列:当线程池中所有的线程都在执行任务时...6.线程工厂:是一个创建线程池的工厂,不设置该参数时,用的是默认的线程工厂 7.拒绝策略:当任务队列都已经满了的时候,此时就会触发拒绝策略。...(runnable); } } 实际开发中,我们不会使用内置的拒绝策略,是因为当内置的拒绝策略过于简单,不利于维护,因此常用自定义的拒绝策略,例如在自定义的拒绝策略中加入mq,当触发了拒绝策略时,发布者会收集异常信息...当调用Future.get()方法时,可以捕获到一个ExecutionException。在这种情况下,线程不会因为异常而终止,它会继续存在于线程池中,准备执行后续的任务。...通过submit()的底层源码发现,其实它的内部封装的是execute方法,只不过它的任务被放在了RunnableFuture对象里。 public Future<?

    18510

    Java Review - 线程池使用FutureTask的小坑

    Future对象上调用了无参get方法,那么调用线程会一直被阻塞。...如果把拒绝策略修改为DiscardOldestPolicy,也会存在有一个任务的get方法一直阻塞,只是现在是任务two被阻塞。...那么我们下面就需要看下当调用Future的无参get方法时Future变为什么状态才会返回,那就要看下FutureTask的get()方法代码。...Future时,尽量使用带超时时间的get方法,这样即使使用了DiscardPolicy拒绝策略也不至于一直等待,超时时间到了就会自动返回。...小结 通过案例介绍了在线程池中使用FutureTask时,当拒绝策略为DiscardPolicy和DiscardOldestPolicy时,在被拒绝的任务的FutureTask对象上调用get()方法会导致调用线程一直阻塞

    63350

    java线程池(三):ThreadPoolExecutor源码分析

    直接切换通常需要无限制的maximumPoolSizes以避免拒绝提交的新任务。反过来,当平均而言,命令继续以比其处理速度更快的到达时,这可能会带来无限线程增长的可能性。...拒绝任务: 当执行器关闭时,并且执行器对最大线程数和工作队列容量使用有限范围时,在方法execute提交的新任务将被拒绝。处于饱和。...Hook方法: 线程池类提供了protected权限的可重写的beforeExecute和afterExecute方法。这些方法在每个线程的之前前后被调用。...e.isShutdown()) { e.getQueue().poll(); e.execute(r); } } } 这个拒绝策略将当队列中的旧任务丢弃...,之后将当前任务添加到队列,但是这个拒绝策略并不能保证当前任务能执行,还是会有可能被后续的任务继续丢弃。

    1.2K60
    领券