Firebase不会将本地IP添加到授权域

我在自己的IP上安装了本地开发服务器,而不是使用localhost,但当我尝试将其添加到授权域的Firebase设置中时,它就不起作用了。我也尝试过其他常规外观的域名,它们也不会坚持。此部分现在是否已中断?Firebase支持是解决此类问题的更合适渠道-请查看support@firebase.com.I把它打出来。在进入域后,您必须点击空格,即使您没有这样做就成功获得了保存警报

如何使用firebase集合创建对特定用户的引用?

我使用聚合物1.1和firebase收集元素 我想在我的数据库中检索特定用户的信息,结构如下: <userId> - name: "joe" - email: "provider" - fullName: "Joe Brown" 我需要返回用户1234的全名。是否可以使用firebase collection元素或仅使用firebase文档元素?我建议使用firebase文档元素,而不是将位置设置为用户路径&数据将是完整的用户信息 更新代码: 然后在元素的DOM中,类似

聚合物1.x+;Firebase 2.x:Firebase数据不会在登录后的第一次渲染中加载

在用户登录事件后页面的第一次加载上,我想用存储在我的Firebase中的一组对象填充项属性 A实现了我想要的行为 A. D ... 特性:{ 路径:{ 类型:字符串, 值:函数(){ 返回“widgets”; }, } }, ... 此外,在聚合物松弛网站上,@will在中国表示: 我在第一次加载数据时遇到了问题,我发现如果我没有对同一路径的多个引用,我就不会遇到这个问题 我不确定这在这里意味着什么,因为我的元素(和应用程序)中只有一个引用指向firebase query元素中的路径path

Firebase的云功能在更新时是否不可用

当我使用CLIFirebase部署更新Firebase的云函数时——仅函数,该功能是否在一定时间内不可用,或者是由云功能基础设施内部处理的功能,并且该功能始终可用,并且在部署成功后仅切换到新功能?云功能处于测试阶段,谷歌目前也没有对你的代码的可用性做出任何保证。但目的是在替换代码时不应错过任何调用。关于这一点,已经有人提出了。感谢您的回复!与讨论的链接很有帮助。

获取或设置数据库规则中要使用的Firebase uid的云函数

根据,为了为数据库规则设置用户uid和其他身份验证信息,您的函数应如下所示: var functions = require('firebase-functions'); var admin = require('firebase-admin'); exports.foo = functions.database.ref('/bar') .onWrite(event => { var firebaseConfig = functions.config().firebase;

Firebase-防止用户身份验证

如果在allowedUsers中找不到他们的电子邮件,我需要阻止用户身份验证。它实际上并不影响应用程序,因为所有操作都将在用户列表上执行,但如果不进行身份验证,那就太好了 loginWithGoogle() { const userDetails = this.afAuth.auth.signInWithPopup(new firebase.auth.GoogleAuthProvider()) .then(user => { console.log(us

Firebase 是否可以在Firestore中查找所有集合而不必事先知道它们的路径?

我认为Firestore不支持对只包含子集合而不包含任何字段的文档进行查询。有没有办法找到所有子集合?理论上这似乎是可能的,因为Firestore控制台支持查看子集合。您应该能够使用列出所有集合ID。rest api请求url类似于:/v1beta1/projects/{project id}/databases/(默认值)/documents/topics:ListCollectionId?pageSize=3

自定义域上的Firebase函数,无主机

所以我只想在我的自定义域上托管我的Firebase函数,而不托管任何东西。我已经把我的网站放在别的地方了 不幸的是,Firebase在尝试部署具有重写但没有公用目录的函数或公用目录为空时会抛出错误 我如何在Firebase上做到这一点,而不需要黑客和托管一些多余的东西?我只想在自定义域上托管函数。看起来Firebase托管至少需要一个html页面,即使您只需要托管函数。只需向目录中添加一个空白index.html,并指向该目录。要将自定义域与云功能结合使用,您需要通过Firebase托管将该域关

firebase重置密码控制器

昨天,我的应用程序Ionic v1启动,一些用户输入了错误的密码,无法登录该应用程序。 该应用程序使用firebase身份验证。我有一个指向数据库的_refs文件,并尝试了许多方法试图让重置生效。 我尝试过引用$firebaseAuth,当然是我的u refs,$firebase,然后使用$firebase.auth。。。 我没有编写此应用程序的身份验证,因此我不确定它是如何工作的。我希望有人能帮助我 我的重置控制器 angular.module('formulaWizard').control

Firebase云函数CanonicalRegistrationTokenCount出错

在db中保存注册和用户后,我正在尝试向我的应用发送注册通知。为此,我正在使用firebase云函数 我已从FirebaseInstancedService获取设备令牌,并将其保存在用户数据库中,路径为users/userid/deviceToken,并在函数中引用此路径,如以下代码所示: exports.sendNotification = functions.database.ref("users/{userId}/{instanceId_token}") 我尝试记录devicetoken只

Firebase发件人/服务器密钥更改是否会影响当前订阅的主题?

我们需要将应用程序从Firebase中的现有项目移动到具有不同发件人/服务器密钥的新项目。主题订阅对以前的用户仍然有效吗?我假设它们没有绑定到项目的发送方/服务器密钥,但我可能错了。它会改变。用于订阅主题的注册令牌与创建该主题的senderId(项目)绑定——这就是为什么启用多个发送者会为每个发送者创建不同的令牌 所以是的。如果你要搬家,你必须以某种方式向所有用户订阅他们在新项目中的相应主题 哇,谷歌正在让我们将一个项目下的400个应用程序全部转移到一个项目中。似乎没有办法将当前主题用户重新分配

firebase存储是否自动扫描受感染的文件?

我尝试过谷歌搜索,但我只能找到有关谷歌硬盘扫描文件大小小于25MB的信息。firebase存储是否也这样做?我正计划开发一个应用程序,希望确保用户不会上传受感染的文件。我正在检查是否必须自己进行病毒扫描 云存储与您放入其中的数据无关,也不会改变其内容。然而,你确实有义务去履行这个义务 如果出于任何原因想扫描文件,你必须自己扫描

Firebase Flatter应用程序是否有办法在离线应用程序重新启动时保存数据?

我正在使用firebase动画列表来显示存储在firebase实时数据库中的项目列表 现在,当我在离线状态下启动应用程序(在应用程序被杀死后),列表不会加载 是否有一种内置方法来离线存储此用例的数据(由firebase提供)?还是需要存储在某个脱机数据库中 我已经检查过了,但是找不到这个特定的用例 相关问题听起来像是FirebaseDatabase.setPersistenceEnabled /// Attempts to sets the database persistence to [

Firebase 如何构造NoSQL消息以通过1次查询获取未读信息?

假设我有如下NoSQL结构: messages chat_id (known) message_id (generated automatically) {author, timestamp, content} 我还有users/分支,在那里我可以看到两个相关用户的最后登录。 我想通过1次查询获得给定用户的未读邮件数 您将如何执行此任务?此问题分为两部分: 计算消息的数量 跟踪用户阅读的内容 计算消息的数量 假设您使用的是Firebase实时数据库或Clou

角度firebase上载图像

我是Angular 5和firebase的初学者。 作为练习,我决定创建一个博客。 我的问题是我不能在firestore上传我的图片。当我上传到云存储并尝试检索下载链接时,它不会在firestore中注册 看看我的代码,给我一些建议 从'@angular/core'导入{Component,OnInit}; 从'src/app/shared/services/auth.service'导入{AuthService}; 从“rxjs/operators”导入{finalize}; 从“rxjs”

Firebase 使用特定UID锁定写访问

我想制定一个规则,只有我在登录时才能写入数据库 我的理解是,“.write”:“$uid===auth.uid”只限制对授权用户的写入,而不仅仅是对我 我不是100%确定如何做到这一点,所以我最后做的是设置一个GitHub登录(用于2FA) 我从中获取UID并将其添加到我的结构的admins部分,并对其进行规则检查 我不确定这是否真的有效,因为我在这里设置了它,所以我想我应该问问社区 { "rules": { ".write": "root.child('admins').child

Firebase 通过云功能将文件从URL上传到Google存储

我试图找到一种方法将php/MySQL服务器生成的PDF文件上传到我的Google存储桶中。URL很简单:www.my_domain.com/file.pdf。我试过使用下面的代码,但我遇到了一些问题,无法让它正常工作。错误是:路径(fs.createWriteStream(destination))必须是字符串或缓冲区。提前感谢您的帮助 const http = require('http'); const fs = require('fs'); const {Storage} = requi

设置默认Firebase文档语言

每当我在巴西访问Firebase文档时,文档都会以葡萄牙语显示。我发现我可以通过将hl=en参数附加到URL来强制使用英语,但我想知道是否有办法将其设置为默认设置 顺便说一句,我已经将我的谷歌帐户设置为英语。如果你想将语言设置为英语。遵循以下步骤: 去 您将看到下拉菜单,如下图所示: 点击它,你会看到“英语”点击它。您将看到页面已转换为英语 我希望我能帮助您:)配置浏览器的默认语言。该网站本身没有自己的设置。是的,在Firefox中,我将英语设置为网页首选语言之后,它就可以工作了。

Firebase 云Firestore不断重新下载文档-颤振

这发生在我的主应用程序中 和 我使用给定的代码实验室复制它: import'包:cloud_firestore/cloud_firestore.dart'; 进口“包装:颤振/材料.省道”; void main()=>runApp(MyApp()); 类MyApp扩展了无状态小部件{ @凌驾 小部件构建(构建上下文){ 返回材料PP( 标题:“婴儿名字”, 主页:MyHomePage(), ); } } 类MyHomePage扩展StatefulWidget{ @凌驾 _MyHomePageS

如何在firebase中检查电子邮件是否经过验证

因此,我正在尝试在firebase中检查电子邮件是否经过验证。谷歌文档中没有swift文档,所有在线内容都已过时。发送电子邮件至: 要检查以下各项: 问题还不清楚-你想从哪里检查?应用程序?Firebase控制台?由该用户还是另一用户?当你说没有,它是,你是什么意思?对我来说,它看起来非常流行。谢谢,代码的第二部分就是我要找的。 Auth.auth().currentUser?.sendEmailVerification { (error) in // ... } if Auth.auth

如何从客户端应用程序禁用Unity中的Firebase推送通知?

我已经将Firebase集成到Unity项目中,并且一切正常。如果用户想在他的应用程序中禁用推送通知,我想集成禁用推送通知。我还没有在代码中找到解决方案,还有一个问题与我的问题相同,因此我将发布一个新的问题,以防有人提出解决方案。有两种类型的消息可以使用FCM发送:通知消息和数据消息 如果您的应用处于活动状态,通知消息将传递到您的应用程序代码,该代码可以决定如何处理该应用程序。当应用程序未激活时,系统会自动显示通知消息。没有办法抑制这种行为 数据消息总是传递到应用程序代码中,应用程序代码可以决定

Firebase 如何使用Firestore作为数据库在twitter克隆应用程序中共享帖子?

我有一个Firestore数据结构和一个文档,在这个文档中,我的所有追随者都可以看到我的recentPosts,方法是根据文档的users字段查询文档集合,查询用户名如下 我的问题是如何将他人的帖子共享给我的追随者,目前我正在将共享的帖子复制到我的最近的帖子和我的单独的帖子文档集合中,但是如果一个用户删除了帖子,而该帖子被数百万用户共享,该怎么办?我必须删除所有共享帖子,有更好的解决方案吗?鉴于您在数据模型中的选择,删除重复帖子几乎是正常的解决方案。我也不认为这有问题,因为: 您已经开始向所有

如何更改应用程序';s在firebase google中的名称';让我们登录

我在firebase上有一个老项目,它的名字是随机产生的,后来变成了辉煌的地狱X 当用户即将使用Google登录应用程序时,它会显示如下内容: 选择要在列表中输入的帐户 Lendent-inferno-x.firebaseapp.com 可以在google登录弹出窗口中更改此名称吗?怎么做 我在firebase控制台中找不到如何更改。如果您希望显示应用程序的品牌信息,则需要验证应用程序。查看需要应用程序验证的情况。您可以使用Firebase托管自定义域来更改它。查看上的官方文档中的说明。我很确定

Firebase主机-用户自定义域(白色标签)

我正在为我的一个应用程序使用firebase,并希望添加一些功能,让我的用户可以自定义域名并使用自己的域名 因此,他们可以将我的应用程序的“example.com/bla”更新为“mydomain.com/bla”,作为高级品牌功能(白色标签) firebase托管/功能是否可行?如果可能,如何实现 我正在寻找的一个例子可以在这里找到: 仅将此问题标记为已回答,在此粘贴Michael Bleigh的评论: Firebase主机不太适合多租户域 供应。在一个站点上访问20个以上的域是不可能的 建议

Firebase 当应用程序位于前台时,无法获取要显示的onMessage

我正在写一个应用程序,你可以按下一个按钮,它将发送一个“帮助”通知给每一个应用程序(这将是一个大约100人的封闭组)。我需要弹出通知,无论该应用程序处于何种状态,我有onResume和onLaunch排序,但我无法让它在应用程序位于前台时显示通知。有很多屏幕,我需要通知显示在任何屏幕上的用户 我试过很多教程,但就是不能让它工作。我在主页上的initState中有代码 void main() { SystemChrome.setPreferredOrientations([DeviceOrie

Firebase 使用云存储触发器时可以使用变量吗?

当我使用Cloud Firestore触发器时,我可以使用如下变量: exports.profileCreated = functions.firestore.document('communities_data/{community}/profiles/{profileID}').onCreate((snap, context) => { //do whatever }); 我可以使用社区和档案ID。我可以对云存储触发器执行类似的操作吗?我在文档中找不到关于它的信息 我需要这个,这

Firebase 如何在不指定文档ID的情况下更新文档中的数据?

是否有一种方法可以在不指定文档ID的情况下更新文档中的数据 但是当我穿过stackoverflow时,我看到了这个代码 firebase.firestore()集合(“用户”) .其中(“姓名”,“丹尼尔”) .get(函数(querySnapshot){ querySnapshot.forEach(函数(文档){ document.ref.update({…}); }); }); 有人能把这个翻译成颤振代码(Dart)吗。这是一个不必输入文档ID就可以取消文档搜索的查询。我认为。与您发布的代

使用Flatter从firebase中的子集合读取或检索数据列表

我使用firebase保存我的数据,并使用Flatter(dart)访问这些数据 现在。我有一个收款名称(客户付款详细信息),我把这样的随机唯一ID(tZ9d9cYeUvXKm1easHtr)放在这个ID中,我有一个子收款(付款信息)。在这个子集合中有一个唯一的ID。在这个ID中有许多值 我想以列表的形式读取此数据 我写这段代码是为了访问这些数据 下面的代码是我的型号名称(客户\付款\详细信息) 这是我的API: import 'package:cloud_firestore/cloud_fir

谷歌云构建&;Firebase部署—“部署”;发生了意外错误";

我正在使用Google Cloud Build在主服务器上提交时部署到Firebase主机。我正在使用部署到我的项目中的Cloud Builder。我已经在云控制台中检查了权限,并且启用了Firebase访问 生成用于托管的静态HTML似乎一切顺利,但在最终构建步骤中,它突然失败,出现以下问题: 错误:发生意外错误。 以下是my cloudbuild.yaml中失败的步骤: - name: gcr.io/$PROJECT_ID/firebase args: ['deploy', '--pro

Firebase InkWell的onTap()未触发

还尝试了onPressed()图标按钮,但未打印。尝试忽略指针,没有改变,有趣的是onLongPress()正在工作。这是因为在一个容器中。我说的这个绿色按钮 试试这个。你可以使用开箱即用的FAB来做同样的事情,而不是用多个widget来制造混乱 FloatingActionButton( onPressed: () { print("sdsdsd"); //sendChatToFirestore(); },

如何在运行firebase登录时跳过`(Y/n)`提示

我试图在我的持续集成中设置firebase CLI(travis ci,这并不重要),我不可避免地必须登录firebase $firebase登录--令牌firebase\u令牌--无本地主机 ]0;Firebase CLIi Firebase可选择性地收集CLI使用情况和错误报告信息,以帮助改进我们的产品。数据是根据谷歌的隐私政策收集的(https://policies.google.com/privacy)也不是用来识别你的。 ? 是否允许Firebase收集CLI使用情况和错误报告信息?(

Firebase vs BigQuery:不同的用户不匹配

我无法理解firebase控制台和BigQuery之间不同用户的区别,请您帮助我理解它们好吗 在bigquery中,我运行以下查询: 选择x.Daily,countdistinct x.user\u pseudo\u id from 选择_TABLE_SUFFIX days,user_pseudo_id 来自'analytics_186900506.events_*` 其中_TABLE_后缀在'20200501'和'20200531'之间 事件名称=会话开始 和平台“='ANDROID' x 按

Firebase 检查Firestore数据库中是否已存在用户名

在我的应用程序中,我必须实现屏幕上的签名 一切都很好,但有一点不行。当有人想注册时,他不能像其他用户一样使用同一封电子邮件,这是可行的,但我也希望他不能使用相同的用户名。我在CloudFireStore中有一个名为“SerX”的集合和一个名为“用户名”的文档字段。如果有人知道怎么做,请评论你的解决方案 应该有这样的返回“此用户名已存在!” Widget _buildUserNameTF() { return Column( crossAxisAlignment: Cros

Firebase是否可以添加有关照片和照片的文本数据?

我在这种情况下感到困惑。我正在做一个新项目,比如添加照片、描述或其他文本输入。我读了一篇文章,它正在这样做,但这是一篇旧文章。 我的应用程序是这样的;用户将添加照片、标题和说明。就像一个简单的Instagram。 (老实说,我不会做instagram.:) (您也可以在这里找到: ) 在Firebase Firestore中可以这样做吗?还是应该使用云存储 如果我必须使用云存储,如何添加照片描述或其他文本输入 我在谷歌上找不到这样的例子。你需要同时使用这两种方法,你应该在云存储中上传图像,上传后

Firebase 使用查询类获取Firestore中的非空子集合

我正在尝试从Firebase Firestore的建筑物集合中获取非空房间(使用颤振框架): 但我没有收到任何收藏,即使在建筑物中几乎没有房间子收藏记录 添加屏幕截图以供参考- 在查询结束时追加.get()。您可以通过Flatter阅读有关使用firebase的最常见用例的更多信息。Firestore中的查询可以处理单个集合,也可以处理一组同名集合。无法查询您的建筑文档中是否存在房间子集合或其值 典型的解决方法是在每个建筑物文档中存储RoomCount字段,并在添加/删除房间时保持该字段的最新状

链接Firebase分析与双击(DFP)

我们希望将firebase analytics与doubleclick for publishers链接起来。我们以前有AdMob,可以使用ARPU(每个用户的平均收入)统计数据 我们可以在应用程序内使用电子商务购买和应用程序内购买功能,将数据“放入”firebase analytics,以查看ARPU。但我们不知道DFP广告在应用程序代码中带来的确切收入 是否有人试图将它们链接在一起,或者想出了如何从DFP检索必要的值,以及如何在代码中使用它们,以便为firebase analytics正确设

Firebase存储病毒检查

如何确保用户无法上载包含已知恶意软件的文件 我可以上传文件,并尝试在Firebase文档中查找任何与恶意软件或病毒相关的内容。云存储与上传到存储桶的文件内容无关,只要您遵循以下规则即可。就它而言,它只是字节序列。如果你想应用一些病毒防护,你需要在上传之前自己做。或者上传后检查,然后删除不想保留的内容

Firebase v-for内部的引导Vue+Nuxt JS模式问题

我正在构建一个类似Trello的应用程序,通过该应用程序,我有板、列表和卡片,数据保存到Firebase中的实时数据库中进行测试 我正在使用引导Vue切换可见性。然而,我遇到了一个问题 首先,我有一个内置的引导卡,它有一个v型,从板中的列表中获取一个卡列表。我想在模式中单击后显示卡的数据,如果单击另一张卡,它将使用相同的元素,但显示不同的数据 在我的实现中,我似乎导致超过了最大调用堆栈大小,并导致浏览器崩溃5000多次以上,这看起来不太好:D 我做了一些调试,并尝试使用返回false的方法;为了

Firebase 如何使用uid调用另一个表属性?-火基颤振

我的问题与此类似 我正试图从该线程创建一个类似的代码,但没有成功 这是我的火力基地 StreamBuilder( 流:FirebaseDatabase.instance .reference() .儿童(“问题”) .onValue, 生成器:(BuildContext上下文,异步快照){ if(snapshot.hasData){ Map Map=snapshot.data.snapshot.value; 返回GridView.builder( gridDelegate:SliverGridD

React Native:使用Redux Saga Firebase实现Facebook OAuth

我正在尝试在我的react原生应用程序中实现FacebookOAuth(react原生fbsdk)。我可以拿到通行证。使用访问令牌,我可以使用const-credential=yield-facebookAuth.credential(data.accessToken)检索凭据然后当我尝试创建一个用户时,我得到一个错误(见下文) 凭证对象: { oauthIdToken: "MY_ID_TOKEN" providerId: "facebook.com" signInMethod: "facebo

如果我用一些定制的密钥替换firebase唯一密钥,会对性能产生影响吗?

对于firebase实时数据库,每次我调用push()添加内容时,都会生成一个唯一的28位密钥 我的用例是将我的博客数据存储到数据库中。博客对象有标题、内容、作者字段。如下 Blog { title: "", content: "", author: "" } 当我将(blog)推送到Firebase中时,假设它将生成一个唯一的密钥,比如PxbEfWQhGP3NTU6HfHuVZfAV4017jcuzSpTnHvhLNXbo。我可以使用它将URL构建为mywebsite.com/b

Firebase Flatter应用程序在同时事务中崩溃(cloud_firestore)

我目前正在尝试使用Flatter和cloud_firestore制作一个基本的计数器应用程序。但是,每当我快速增加计数器时,应用程序就会崩溃并出现以下错误。原因:java.lang.AssertionError:内部断言失败:在调用事务对象的更新回调后,无法使用它。我看过其他几个有类似问题的人,比如我的代码,在列表中有从我的数据库读取的所有项目 Widget\u buildListItem(BuildContext上下文,DocumentSnapshot文档) { 返回列表块( 标题:世界其他地

Firebase 颤振与振动;Cloud Firestore:如何阅读链接到Flatter FutureBuilder的Firestore文档

场景说明: 使用:导入“包:cloud_firestore/cloud_firestore.dart” 云Firestore: “SessionLog”集合,包含具有以下字段的文档: “sessionId”是一个字符串 “是封闭的”一个布尔 “locationId”字符串和一些其他字段 我想检索所有带有“isClosed”假bool的文档,只检索一次,然后执行一些操作。因此,我选择使用FutureBuilder(而不是streambuilder),我所做的是: FutureBuilder

Firebase 为什么Firestore可以';不执行在不同字段上具有不等式条件的查询?

我是Firestore数据库的新手,以前没有使用NoSql数据库的经验(我来自经典的关系数据库) 我知道我可以执行如下查询: return this.db.collection( 'courses', ref=>ref.where("seqNo", "==", "5") .where("lessonCount", ">=", 5) 它应该检索所有对象(从我的课程集合),其中seqNo字段等于5,并且lessonCount字

如何在Firebase Analytics中创建自定义维度

我将在运行Firebase的应用程序中实现一个推荐系统 其中规定: 按照Google Analytics文档中的自定义维度进行添加 具有页面跟踪事件的命中级别范围的项目ID维度 但是,当我查看我的Google Analytics仪表板(不是firebase仪表板)以添加自定义维度时,我在我的Admin选项卡中没有该功能。在Firebase Analytics项目中添加自定义维度的推荐方法是什么 表示使用用户属性,但我的理解是,我们不应该使用用户属性添加自定义维度,例如articleID,因为我需

Firebase JWT的Flatter将GraphQL(GraphQL_flatter)请求发送给Heroku Hasura,该请求具有;格式错误的授权标头“;

我一直在寻找答案,但我还没有看到在一起使用flatter、Firebase和Hasura-GraphQL的上下文中讨论这个问题 在Flatter中工作,利用Firebase身份验证后端,我正在获取一个用户JWT并将其传递给Heroku Hasura GraphQL端点(带有一个查询) 大部分设置和代码都遵循并受到了中的教程第2部分和第3部分以及中的颤振图SQL文档的启发 Firebase正在成功地将新用户记录添加到我的GraphQL数据库中。Firebase正在返回一个JWT,并在构建Graph

Firebase 如何搜索查询列表并将其组合到单个查询?

我正在开发一款社交网络应用程序,其数据模型如下: 这里posts集合包含多个具有相同或不同标记字段的文档,用户可以跟踪多个标记我已经在列表中有这些标记我需要提取标记等于该列表元素的文档,并根据时间戳对它们进行排序 getPosts() async { for (int i = 0; i < Constants.hashtags.length; i++) { QuerySnapshot dataDoc = await Firestore.instance

  1    2   3   4   5   6  ... 下一页 最后一页 共 223 页