database package

Firebase 实时数据库

功能

功能描述
函数(应用程序,...)
获取数据库(应用程序,网址)返回与提供的FirebaseApp关联的实时数据库 SDK 的实例。如果不存在实例或现有实例使用自定义数据库 URL,则使用默认设置初始化新实例。
函数(数据库,...)
connectDatabaseEmulator(数据库,主机,端口,选项)修改提供的实例以与实时数据库模拟器进行通信。

注意:必须在执行任何其他操作之前调用此方法。

脱机(db)与服务器断开连接(所有数据库操作将离线完成)。客户端自动维护与数据库服务器的持久连接,该连接将无限期地保持活动状态并在断开连接时重新连接。但是,在不需要持久连接的情况下,可以使用goOffline()goOnline()方法来控制客户端连接。离线时,客户端将不再从数据库接收数据更新。但是,本地执行的所有数据库操作将继续立即触发事件,从而允许您的应用程序继续正常运行。此外,本地执行的每个操作将自动排队并在重新连接到数据库服务器时重试。要重新连接到数据库并开始接收远程事件,请参阅goOnline()
上网(db)重新连接到服务器并将离线数据库状态与服务器状态同步。应在使用goOffline()禁用活动连接后使用此方法。重新连接后,客户端将传输正确的数据并触发适当的事件,以便您的客户端自动“赶上”。
参考(数据库,路径)返回一个Reference表示数据库中与所提供的路径相对应的位置。如果未提供路径, Reference将指向数据库的根目录。
refFromURL(数据库,网址)返回一个Reference表示数据库中与所提供的 Firebase URL 相对应的位置。如果 URL 不是有效的 Firebase 数据库 URL 或者其域与当前Database实例不同,则会引发异常。请注意,所有查询参数( orderBylimitToLast等)都将被忽略,并且不会应用于返回的Reference
功能()
强制长轮询()强制使用 longPolling 而不是 websockets。如果databaseURL中使用了websocket协议,这将被忽略。
强制WebSockets()强制使用 websockets 而不是 longPolling。
按键排序()创建一个按键排序的新QueryConstraint按(升序)键值对查询结果进行排序。您可以在排序数据中阅读有关orderByKey()的更多信息
按优先级排序()创建一个按优先级排序的新QueryConstraint应用程序不需要使用优先级,但可以按普通属性对集合进行排序(有关优先级的替代方案,请参阅排序数据
按值排序()创建一个按值排序的新QueryConstraint如果查询的子项都是标量值(字符串、数字或布尔值),您可以按它们的(升序)值对结果进行排序。您可以在排序数据中阅读有关orderByValue()的更多信息
服务器时间戳()返回一个占位符值,用于自动填充 Firebase 服务器确定的当前时间戳(自 Unix 纪元以来的时间,以毫秒为单位)。
函数(增量,...)
增量(增量)返回一个占位符值,可用于按提供的增量以原子方式增加当前数据库值。
功能(启用,...)
启用日志记录(已启用,持久)将调试信息记录到控制台。
函数(极限,...)
限制到第一个(限制)创建一个新的QueryConstraint ,将其限制为第一个特定数量的子项。 limitToFirst()方法用于设置给定回调要同步的子级的最大数量。如果我们将限制设置为 100,则最初最多只会收到 100 个child_added事件。如果数据库中存储的消息少于 100 条,则每条消息都会触发child_added事件。但是,如果我们有超过 100 条消息,我们将仅收到前 100 条有序消息的child_added事件。当项目发生变化时,我们将为从活动列表中删除的每个项目接收child_removed事件,以便总数保持在 100。您可以在过滤数据中阅读有关limitToFirst()的更多信息
限制到最后(限制)创建一个新的QueryConstraint ,该约束仅限于返回最后指定数量的子项。 limitToLast()方法用于设置给定回调要同步的子级的最大数量。如果我们将限制设置为 100,则最初最多只会收到 100 个child_added事件。如果数据库中存储的消息少于 100 条,则每条消息都会触发child_added事件。但是,如果我们有超过 100 条消息,我们将仅收到最后 100 条有序消息的child_added事件。当项目发生变化时,我们将为从活动列表中删除的每个项目接收child_removed事件,以便总数保持在 100。您可以在过滤数据中阅读有关limitToLast()的更多信息
函数(记录器,...)
启用日志记录(记录器)将调试信息记录到控制台。
函数(父级,...)
子级(父级,路径)获取指定相对路径位置的Reference相对路径可以是简单的子名称(例如“ada”),也可以是更深的斜杠分隔路径(例如“ada/name/first”)。
推送(父级,值)使用唯一键生成新的子位置并返回其Reference这是向项目集合添加数据的最常见模式。如果您向push()提供一个值,该值将写入生成的位置。如果您不传递值,则不会将任何内容写入数据库,并且子级仍为空(但您可以在其他地方使用Reference )。 push()生成的唯一键按当前时间排序,因此生成的项目列表按时间顺序排序。密钥还被设计为不可猜测(它们包含 72 个随机位的熵)。请参阅附加到数据列表。请参阅确保唯一标识符的 2^120 种方法
函数(路径,...)
orderByChild(路径)创建一个按指定子键排序的新QueryConstraint查询一次只能按一个键排序。对同一个查询多次调用orderByChild()会出错。 Firebase 查询允许您即时通过任何子键对数据进行排序。但是,如果您提前知道索引是什么,则可以通过安全规则中的 .indexOn 规则定义它们,以获得更好的性能。有关详细信息,请参阅https://firebase.google.com/docs/database/security/indexing-data规则。您可以在排序数据中阅读有关orderByChild()的更多信息
函数(查询,...)
获取(查询)获取此查询的最新结果。
关闭(查询、事件类型、回调)分离先前附加到相应on ()onValueonChildAdded )侦听器的回调。注意:这不是删除侦听器的推荐方法。相反,请使用相应on回调返回的回调函数。分离之前用on*()附加的回调。在父侦听器上调用off()不会自动删除在子节点上注册的侦听器,还必须在任何子侦听器上调用off()才能删除回调。如果未指定回调,则将删除指定事件类型的所有回调。同样,如果未指定 eventType,则将删除Reference的所有回调。还可以通过调用取消订阅回调来删除单个侦听器。
onChildAdded(查询、回调、cancelCallback)监听特定位置的数据变化。这是从数据库读取数据的主要方式。您的回调将针对初始数据触发,并在数据发生变化时再次触发。调用返回的取消订阅回调以停止接收更新。有关更多详细信息,请参阅在 Web 上检索数据对于此位置的每个初始子项,都会触发一次onChildAdded事件,并且每次添加新子项时都会再次触发该事件。传递到回调中的DataSnapshot将反映相关子项的数据。出于排序目的,它传递第二个参数,该参数是一个字符串,其中包含按排序顺序的前一个同级子项的键,如果它是第一个子项,则为null
onChildAdded(查询、回调、选项)监听特定位置的数据变化。这是从数据库读取数据的主要方式。您的回调将针对初始数据触发,并在数据发生变化时再次触发。调用返回的取消订阅回调以停止接收更新。有关更多详细信息,请参阅在 Web 上检索数据对于此位置的每个初始子项,都会触发一次onChildAdded事件,并且每次添加新子项时都会再次触发该事件。传递到回调中的DataSnapshot将反映相关子项的数据。出于排序目的,它传递第二个参数,该参数是一个字符串,其中包含按排序顺序的前一个同级子项的键,如果它是第一个子项,则为null
onChildAdded(查询,回调,cancelCallback,选项)监听特定位置的数据变化。这是从数据库读取数据的主要方式。您的回调将针对初始数据触发,并在数据发生变化时再次触发。调用返回的取消订阅回调以停止接收更新。有关更多详细信息,请参阅在 Web 上检索数据对于此位置的每个初始子项,都会触发一次onChildAdded事件,并且每次添加新子项时都会再次触发该事件。传递到回调中的DataSnapshot将反映相关子项的数据。出于排序目的,它传递第二个参数,该参数是一个字符串,其中包含按排序顺序的前一个同级子项的键,如果它是第一个子项,则为null
onChildChanged(查询、回调、cancelCallback)监听特定位置的数据变化。这是从数据库读取数据的主要方式。您的回调将针对初始数据触发,并在数据发生变化时再次触发。调用返回的取消订阅回调以停止接收更新。有关更多详细信息,请参阅在 Web 上检索数据当子项(或其任何后代)中存储的数据发生更改时,将触发onChildChanged事件。请注意,单个child_changed事件可能代表对子项的多个更改。传递给回调的DataSnapshot将包含新的子内容。出于排序目的,回调还会传递第二个参数,该参数是一个字符串,其中包含按排序顺序的前一个同级子项的键,如果它是第一个子项,则为null
onChildChanged(查询、回调、选项)监听特定位置的数据变化。这是从数据库读取数据的主要方式。您的回调将针对初始数据触发,并在数据发生变化时再次触发。调用返回的取消订阅回调以停止接收更新。有关更多详细信息,请参阅在 Web 上检索数据当子项(或其任何后代)中存储的数据发生更改时,将触发onChildChanged事件。请注意,单个child_changed事件可能代表对子项的多个更改。传递给回调的DataSnapshot将包含新的子内容。出于排序目的,回调还会传递第二个参数,该参数是一个字符串,其中包含按排序顺序的前一个同级子项的键,如果它是第一个子项,则为null
onChildChanged(查询、回调、cancelCallback、选项)监听特定位置的数据变化。这是从数据库读取数据的主要方式。您的回调将针对初始数据触发,并在数据发生变化时再次触发。调用返回的取消订阅回调以停止接收更新。有关更多详细信息,请参阅在 Web 上检索数据当子项(或其任何后代)中存储的数据发生更改时,将触发onChildChanged事件。请注意,单个child_changed事件可能代表对子项的多个更改。传递给回调的DataSnapshot将包含新的子内容。出于排序目的,回调还会传递第二个参数,该参数是一个字符串,其中包含按排序顺序的前一个同级子项的键,如果它是第一个子项,则为null
onChildMoved(查询、回调、cancelCallback)监听特定位置的数据变化。这是从数据库读取数据的主要方式。您的回调将针对初始数据触发,并在数据发生变化时再次触发。调用返回的取消订阅回调以停止接收更新。有关更多详细信息,请参阅在 Web 上检索数据当子项的排序顺序发生变化,导致其相对于其兄弟项的位置发生变化时,将触发onChildMoved事件。传递给回调的DataSnapshot将用于已移动的子项的数据。它还传递第二个参数,该参数是一个字符串,其中包含按排序顺序的前一个同级子项的键,如果它是第一个子项,则为null
onChildMoved(查询、回调、选项)监听特定位置的数据变化。这是从数据库读取数据的主要方式。您的回调将针对初始数据触发,并在数据发生变化时再次触发。调用返回的取消订阅回调以停止接收更新。有关更多详细信息,请参阅在 Web 上检索数据当子项的排序顺序发生变化,导致其相对于其兄弟项的位置发生变化时,将触发onChildMoved事件。传递给回调的DataSnapshot将用于已移动的子项的数据。它还传递第二个参数,该参数是一个字符串,其中包含按排序顺序的前一个同级子项的键,如果它是第一个子项,则为null
onChildMoved(查询、回调、cancelCallback、选项)监听特定位置的数据变化。这是从数据库读取数据的主要方式。您的回调将针对初始数据触发,并在数据发生变化时再次触发。调用返回的取消订阅回调以停止接收更新。有关更多详细信息,请参阅在 Web 上检索数据当子项的排序顺序发生变化,导致其相对于其兄弟项的位置发生变化时,将触发onChildMoved事件。传递给回调的DataSnapshot将用于已移动的子项的数据。它还传递第二个参数,该参数是一个字符串,其中包含按排序顺序的前一个同级子项的键,如果它是第一个子项,则为null
onChildRemoved(查询,回调,cancelCallback)监听特定位置的数据变化。这是从数据库读取数据的主要方式。您的回调将针对初始数据触发,并在数据发生变化时再次触发。调用返回的取消订阅回调以停止接收更新。有关更多详细信息,请参阅在 Web 上检索数据每次移除子项时都会触发onChildRemoved事件。传递到回调中的DataSnapshot将是已删除的子项的旧数据。当出现以下任一情况时,孩子将被移除: - 客户端在该子项或其祖先之一上显式调用remove() - 客户端在该子项或其祖先之一上调用set(null) - 该子项已删除其所有子项 - 现在有一个有效的查询过滤掉子项(因为它的排序顺序已更改或达到了最大限制)
onChildRemoved(查询、回调、选项)监听特定位置的数据变化。这是从数据库读取数据的主要方式。您的回调将针对初始数据触发,并在数据发生变化时再次触发。调用返回的取消订阅回调以停止接收更新。有关更多详细信息,请参阅在 Web 上检索数据每次移除子项时都会触发onChildRemoved事件。传递到回调中的DataSnapshot将是已删除子级的旧数据。当出现以下任一情况时,孩子将被移除: - 客户端在该子项或其祖先之一上显式调用remove() - 客户端在该子项或其祖先之一上调用set(null) - 该子项已删除其所有子项 - 现在有一个有效的查询过滤掉子项(因为它的排序顺序已更改或达到了最大限制)
onChildRemoved(查询,回调,cancelCallback,选项)监听特定位置的数据变化。这是从数据库读取数据的主要方式。您的回调将针对初始数据触发,并在数据发生变化时再次触发。调用返回的取消订阅回调以停止接收更新。有关更多详细信息,请参阅在 Web 上检索数据每次移除子项时都会触发onChildRemoved事件。传递到回调中的DataSnapshot将是已删除的子项的旧数据。当出现以下任一情况时,孩子将被移除: - 客户端在该子项或其祖先之一上显式调用remove() - 客户端在该子项或其祖先之一上调用set(null) - 该子项已删除其所有子项 - 现在有一个有效的查询过滤掉子项(因为它的排序顺序已更改或达到了最大限制)
onValue(查询、回调、cancelCallback)监听特定位置的数据变化。这是从数据库读取数据的主要方式。您的回调将针对初始数据触发,并在数据发生变化时再次触发。调用返回的取消订阅回调以停止接收更新。有关更多详细信息,请参阅在 Web 上检索数据 onValue事件将在初始数据存储在该位置时触发一次,然后在每次数据更改时再次触发。传递给回调的DataSnapshot将针对调用on()的位置。直到全部内容同步后才会触发。如果该位置没有数据,则会用空的DataSnapshot触发( val()将返回null )。
onValue(查询、回调、选项)监听特定位置的数据变化。这是从数据库读取数据的主要方式。您的回调将针对初始数据触发,并在数据发生变化时再次触发。调用返回的取消订阅回调以停止接收更新。有关更多详细信息,请参阅在 Web 上检索数据 onValue事件将在初始数据存储在该位置时触发一次,然后在每次数据更改时再次触发。传递给回调的DataSnapshot将针对调用on()的位置。直到全部内容同步后才会触发。如果该位置没有数据,则会用空的DataSnapshot触发( val()将返回null )。
onValue(查询、回调、cancelCallback、选项)监听特定位置的数据变化。这是从数据库读取数据的主要方式。您的回调将针对初始数据触发,并在数据发生变化时再次触发。调用返回的取消订阅回调以停止接收更新。有关更多详细信息,请参阅在 Web 上检索数据 onValue事件将在初始数据存储在该位置时触发一次,然后在每次数据更改时再次触发。传递给回调的DataSnapshot将针对调用on()的位置。直到全部内容同步后才会触发。如果该位置没有数据,则会用空的DataSnapshot触发( val()将返回null )。
查询(查询,查询约束)创建一个新的不可变Query实例,该实例已扩展为还包含其他查询约束。
函数(参考,...)
onDisconnect(参考)返回一个OnDisconnect对象 - 有关如何使用它的更多信息,请参阅在 JavaScript 中启用离线功能
删除(参考)删除此数据库位置的数据。子位置的所有数据也将被删除。删除的效果将立即可见,并且将触发相应的事件“值”。还将开始同步删除到 Firebase 服务器,并且返回的 Promise 将在完成后解析。如果提供,则同步完成后将异步调用 onComplete 回调。
runTransaction(ref, transactionUpdate, 选项)以原子方式修改此位置的数据。原子修改此位置的数据。与普通的set()不同,普通的 set() 只会覆盖数据,而不管其先前的值如何, runTransaction()用于将现有值修改为新值,确保与其他客户端同时写入同一位置不会发生冲突。为了实现这一点,您可以向runTransaction()传递一个更新函数,该函数用于将当前值转换为新值。如果在成功写入新值之前另一个客户端写入该位置,则将使用新的当前值再次调用您的更新函数,并且将重试写入。这将重复发生,直到您的写入成功且没有冲突,或者您通过不从更新函数返回值来中止事务。注意:使用set()修改数据将取消该位置的任何待处理事务,因此如果混合使用set()runTransaction()来更新相同的数据,应格外小心。注意:在使用具有安全和 Firebase 规则的事务时,请注意,客户端除了.write访问权限之外还需要.read访问权限才能执行事务。这是因为事务的客户端性质要求客户端读取数据以便以事务方式更新它。
设置(参考,值)将数据写入此数据库位置。这将覆盖该位置和所有子位置的所有数据。写入的效果将立即可见,并会触发相应的事件(“value”、“child_added”等)。数据同步到Firebase服务器也将开始,完成后返回的Promise将被解析。如果提供,则同步完成后将异步调用onComplete回调。为新值传递null相当于调用remove() ;即,该位置和所有子位置的所有数据都将被删除。 set()将删除存储在该位置的任何优先级,因此如果要保留优先级,则需要使用setWithPriority()代替。请注意,使用set()修改数据将取消该位置的任何待处理事务,因此如果混合set()transaction()修改相同数据,应格外小心。单个set()将在执行set()的位置生成单个“值”事件。
设置优先级(参考,优先级)设置此数据库位置的数据的优先级。应用程序不需要使用优先级,但可以按普通属性对集合进行排序(请参阅排序和过滤数据)。
setWithPriority(参考,值,优先级)将数据写入数据库位置。与set()类似,但也指定该数据的优先级。应用程序不需要使用优先级,但可以按普通属性对集合进行排序(请参阅排序和过滤数据)。
更新(参考,值)一次将多个值写入数据库。 values参数包含多个属性-值对,这些属性-值对将一起写入数据库。每个子属性可以是简单属性(例如“name”),也可以是从当前位置到要更新的数据的相对路径(例如“name/first”)。set()方法相反, update()可用于有选择地仅更新当前位置处引用的属性(而不是替换当前位置处的所有子属性)。写入的效果将立即可见,并会触发相应的事件('value'、'child_added'等)。数据同步到Firebase服务器也将开始,完成后返回的Promise将被解析。如果提供,则同步完成后将异步调用onComplete回调。单个update()将在执行update()的位置生成单个“值”事件,无论修改了多少个子项。请注意,使用update()修改数据将取消该位置的任何待处理事务,因此如果混合update()transaction()修改相同数据,应格外小心。null传递给update()将删除该位置的数据。参阅引入多位置更新等
函数(值,...)
结束处(值,键)创建具有指定终点的QueryConstraint使用startAt()startAfter()endBefore()endAt()equalTo()允许您为查询选择任意起点和终点。终点是包含的,因此具有指定值的子项将包含在查询中。可选的 key 参数可用于进一步限制查询的范围。如果指定了,则具有指定值的子项也必须具有小于或等于指定键的键名。您可以在过滤数据中阅读有关endAt()的更多信息
结束之前(值,键)创建具有指定终点(不包括终点)的QueryConstraint使用startAt()startAfter()endBefore()endAt()equalTo()允许您为查询选择任意起点和终点。终点是唯一的。如果仅提供一个值,则值小于指定值的子项将包含在查询中。如果指定了键,则子级的值必须小于或等于指定的值,并且键名称小于指定的键。
equalTo(值,键)创建一个包含与指定值匹配的子项的QueryConstraint使用startAt()startAfter()endBefore()endAt()equalTo()允许您为查询选择任意起点和终点。可选的 key 参数可用于进一步限制查询的范围。如果指定了,则具有完全相同的指定值的子级也必须具有完全相同的指定键作为其键名称。这可用于过滤具有相同值的许多匹配项的结果集。您可以在过滤数据中阅读有关equalTo()的更多信息
开始之后(值,键)创建具有指定起点(不包括起点)的QueryConstraint使用startAt()startAfter()endBefore()endAt()equalTo()允许您为查询选择任意起点和终点。起点是排他性的。如果仅提供一个值,则值大于指定值的子项将包含在查询中。如果指定了键,则子级的值必须大于或等于指定的值,并且键名称大于指定的键。
开始时间(值,键)创建具有指定起点的QueryConstraint使用startAt()startAfter()endBefore()endAt()equalTo()允许您为查询选择任意起点和终点。起始点是包含的,因此具有指定值的子项将包含在查询中。可选的 key 参数可用于进一步限制查询的范围。如果指定了,则具有指定值的子项也必须具有大于或等于指定键的键名。您可以在过滤数据中阅读有关startAt()的更多信息

课程

班级描述
数据库表示 Firebase 实时数据库的类。
数据快照DataSnapshot包含来自数据库位置的数据。每当您从数据库读取数据时,您都会收到DataSnapshot形式的数据。 DataSnapshot将传递到您使用on()once()附加的事件回调。您可以通过调用val()方法将快照的内容提取为 JavaScript 对象。或者,您可以通过调用child()来遍历快照以返回子快照(然后您可以对其调用val() )。 DataSnapshot是数据库位置上有效生成的、不可变的数据副本。它无法修改,也永远不会改变(要修改数据,您总是直接在Reference上调用set()方法)。
断开连接时onDisconnect类允许您在客户端与数据库服务器断开连接时写入或清除数据。无论您的客户端是否完全断开连接,这些更新都会发生,因此即使连接断开或客户端崩溃,您也可以依靠它们来清理数据。 onDisconnect类最常用于管理应用程序中的状态,可用于检测连接的客户端数量以及其他客户端何时断开连接。有关详细信息,请参阅在 JavaScript 中启用离线功能为了避免在请求传输到数据库服务器之前连接断开时出现问题,应在写入任何数据之前调用这些函数。请注意, onDisconnect操作仅触发一次。如果您希望每次断开连接时都执行一个操作,则需要在每次重新连接时重新建立onDisconnect操作。
查询约束QueryConstraint用于缩小数据库查询返回的文档集。 QueryConstraint通过调用endAt()创建,结束之前() ,开始处() ,开始之后() , limitToFirst() , limitToLast() , orderByChild() , orderByChild()orderByKey()orderByPriority()orderByValue()equalTo()然后可以传递给query()以创建也包含此QueryConstraint的新查询实例。
交易结果runTransaction()的解析值的类型

接口

界面描述
数据库参考DatabaseReference代表数据库中的特定位置,可用于在该数据库位置读取或写入数据。您可以通过调用ref()ref("child/path")引用数据库中的根位置或子位置。写入可以通过set()方法完成,读取可以通过on*()方法完成。请参阅https://firebase.google.com/docs/database/web/read-and-write
迭代数据快照表示正在迭代的Reference的子快照。键永远不会是未定义的。
监听选项可用于自定义侦听器的选项对象。
询问Query对数据库位置的数据进行排序和过滤,以便仅包含子数据的子集。这可用于按某些属性(例如恐龙的高度)对数据集合进行排序,以及将大型项目列表(例如聊天消息)限制为适合与客户端同步的数量。查询是通过将此处定义的一个或多个过滤器方法链接在一起来创建的。就像DatabaseReference一样,您可以使用on*()方法从Query接收数据。您将仅接收与您的查询匹配的数据子集的事件和DataSnapshot有关详细信息,请参阅https://firebase.google.com/docs/database/web/lists-of-data#sorting_and_filtering_data
可参考Push()返回时也可以充当DatabaseReference Promise 。该引用立即可用,并且Promise在后端写入完成时解析。
交易选项用于配置事务的选项对象。

类型别名

类型别名描述
事件类型以下字符串之一:“value”、“child_added”、“child_changed”、“child_removed”或“child_moved”。
查询约束类型描述此 SDK 中可用的不同查询约束。
退订可以调用以删除侦听器的回调。

函数(应用程序,...)

获取数据库(应用程序,网址)

返回与提供的FirebaseApp关联的实时数据库 SDK 的实例。如果不存在实例或现有实例使用自定义数据库 URL,则使用默认设置初始化新实例。

签名:

export declare function getDatabase(app?: FirebaseApp, url?: string): Database;

参数

范围类型描述
应用程序Firebase应用程序返回的实时数据库实例关联的FirebaseApp实例。
网址细绳要连接到的实时数据库实例的 URL。如果未提供,SDK 将连接到 Firebase 应用程序的默认实例。

返回:

数据库

提供的应用程序的Database实例。

函数(数据库,...)

connectDatabaseEmulator(数据库,主机,端口,选项)

修改提供的实例以与实时数据库模拟器进行通信。

注意:执行任何其他操作之前,必须调用此方法。

签名:

export declare function connectDatabaseEmulator(db: Database, host: string, port: number, options?: {
    mockUserToken?: EmulatorMockTokenOptions | string;
}): void;

参数

范围类型描述
D b数据库要修改的实例。
主持人细绳模拟器主机(例如:localhost)
港口数字模拟器端口(例如:8080)
选项{oibusertoken?: eMulatorMockTokenOptions |细绳; }

返回:

空白

GOOFFLINE(DB)

与服务器断开连接(所有数据库操作都将离线完成)。

客户端会自动保持与数据库服务器的持续连接,该连接将无限期保持活动状态并在断开连接时重新连接。但是,在持续连接不希望的情况下,可以使用goOffline()goOnline()方法来控制客户连接。

离线时,客户端将不再从数据库接收数据更新。但是,所有在本地执行的数据库操作将继续立即发射事件,从而使您的应用程序可以继续正常行为。此外,在重新连接到数据库服务器时,本地执行的每个操作都将自动排队并重试。

要重新连接到数据库并开始接收远程事件,请参见goOnline()

签名:

export declare function goOffline(db: Database): void;

参数

范围类型描述
D b数据库断开连接的实例。

返回:

空白

上网(db)

重新连接到服务器并将离线数据库状态与服务器状态同步。

使用goOffline()禁用主动连接后,应使用此方法。重新连接后,客户将传输正确的数据并启动适当的事件,以便您的客户自动“赶上”。

签名:

export declare function goOnline(db: Database): void;

参数

范围类型描述
D b数据库重新连接的实例。

返回:

空白

参考(DB,路径)

返回Reference与提供路径相对应的数据库中位置的参考。如果没有提供路径,则Reference将指向数据库的根。

签名:

export declare function ref(db: Database, path?: string): DatabaseReference;

参数

范围类型描述
D b数据库数据库实例以获取参考。
小路细绳代表位置的可选路径将指向返回的Reference 。如果未提供,返回的Reference将指向数据库的根。

返回:

dataBaseReference

如果提供了路径,则指向提供的路径的Reference 。否则,指向数据库根的Reference

refFromURL(数据库,网址)

返回Reference与提供的firebase URL相对应的数据库中位置的参考。

如果URL不是有效的firebase数据库URL,或者它的域与当前Database实例不同,则会引发异常。

请注意所有查询参数( orderBylimitToLast等)被忽略,不应用于返回的Reference

签名:

export declare function refFromURL(db: Database, url: string): DatabaseReference;

参数

范围类型描述
D b数据库数据库实例以获取参考。
网址细绳返回Reference火箱URL将指向。

返回:

dataBaseReference

指向提供的火箱URL的Reference

功能()

forcelongpolling()

强制使用长胶卷代替Websocket。如果Websocket协议在数据库中使用,则将忽略这一点。

签名:

export declare function forceLongPolling(): void;

返回:

空白

forcewebsockets()

强制使用Websocket而不是长期使用。

签名:

export declare function forceWebSockets(): void;

返回:

空白

orderbokey()

创建一个按密钥订购的新QueryConstraint

通过其(上升)钥匙值对查询的结果进行分类。

您可以在排序数据中阅读有关orderByKey()的更多信息

签名:

export declare function orderByKey(): QueryConstraint;

返回:

QueryConstraint

OrderByPriority()

创建一个按优先级订购的新QueryConstraint

应用程序不需要使用优先级,但可以按普通属性订购集合(有关优先级的替代方案,请参见排序数据

签名:

export declare function orderByPriority(): QueryConstraint;

返回:

QueryConstraint

orderbyvalue()

创建一个按价值订购的新QueryConstraint

如果查询的孩子都是标量值(字符串,数字或布尔值),则可以通过其(上升)值订购结果。

您可以在排序数据中阅读有关orderByValue()的更多信息

签名:

export declare function orderByValue(): QueryConstraint;

返回:

QueryConstraint

Servertimestamp()

返回一个由Firebase服务器确定的自动填充当前时间戳(自Unix时期,以毫秒为单位的时间)的占位符值。

签名:

export declare function serverTimestamp(): object;

返回:

目的

函数(增量,...)

增量(delta)

返回一个占位符值,该值可用于原子能通过提供的delta将当前数据库值递增。

签名:

export declare function increment(delta: number): object;

参数

范围类型描述
三角洲数字原子上修改当前值的金额。

返回:

目的

用于修改原子服务器端数据的占位符价值。

功能(启用,...)

启用日志记录(已启用,持久)

记录将信息调试到控制台。

签名:

export declare function enableLogging(enabled: boolean, persistent?: boolean): any;

参数

范围类型描述
已启用布尔值启用true记录,如果为false ,请禁用记录。
执着的布尔值记住页面刷新之间的日志记录状态,如果为true

返回:

任何

功能(极限,...)

limittofirst(极限)

创建一个新的QueryConstraint ,如果仅限于第一个特定的儿童。

limitToFirst()方法用于设置要在给定回调的要同步的最大儿童数量。如果我们设置了100个限制,我们最初只会收到多达100个child_added事件。如果我们在数据库中存储的消息少于100个,则每个消息将发射child_added事件。但是,如果我们有100多条消息,我们将仅收到前100条订购消息的child_added事件。随着项目的变化,我们将收到每个项目的child_removed事件,这些事件从活动列表中删除,以使总数保持在100。

您可以在过滤数据中阅读有关limitToFirst()的更多信息

签名:

export declare function limitToFirst(limit: number): QueryConstraint;

参数

范围类型描述
限制数字此查询中包含的最大节点数量。

返回:

QueryConstraint

Limittolast(极限)

创建一个新的QueryConstraint ,仅限于仅返回最后指定数量的儿童。

limitToLast()方法用于设置最大数量的儿童以进行给定回调。如果我们设置了100个限制,我们最初只会收到多达100个child_added事件。如果我们在数据库中存储的消息少于100个,则每个消息将发射child_added事件。但是,如果我们有100多条消息,我们将仅收到最后100条订购消息的child_added事件。随着项目的变化,我们将收到每个项目的child_removed事件,这些事件从活动列表中删除,以使总数保持在100。

您可以在过滤数据中阅读有关limitToLast()的更多信息

签名:

export declare function limitToLast(limit: number): QueryConstraint;

参数

范围类型描述
限制数字此查询中包含的最大节点数量。

返回:

QueryConstraint

函数(记录器,...)

启用日志记录(记录器)

记录将信息调试到控制台。

签名:

export declare function enableLogging(logger: (message: string) => unknown): any;

参数

范围类型描述
记录器(消息:字符串)=>未知自定义记录器功能以控制事物的记录方式。

返回:

任何

功能(父,...)

孩子(父母,路径)

在指定的相对路径处获取位置的Reference

相对路径可以是一个简单的子名称(例如“ ADA”),也可以是更深的斜线分隔路径(例如,“ ADA/NAME/FIRFT”)。

签名:

export declare function child(parent: DatabaseReference, path: string): DatabaseReference;

参数

范围类型描述
家长dataBaseReference父母位置。
小路细绳从这个位置到所需的儿童位置的相对路径。

返回:

dataBaseReference

指定的儿童位置。

推送(父级,值)

使用唯一键生成新的孩子位置,并返回其Reference

这是将数据添加到项目集合中的最常见模式。

如果您提供了一个值来push() ,该值写入生成的位置。如果您不传递一个值,则没有写入数据库,而孩子则保持空为空(但是您可以在其他地方使用Reference )。

push()生成的唯一键按当前时间排序,因此所得的项目列表按时间顺序排序。这些键也被设计为无法掩盖(它们包含72个随机位熵)。

请参阅附加数据列表。请参阅2^120个确保唯一标识符的方法

签名:

export declare function push(parent: DatabaseReference, value?: unknown): ThenableReference;

参数

范围类型描述
家长dataBaseReference父母位置。
价值未知可选的值将在生成的位置写入。

返回:

然后进行

合并的PromiseReference ;写入完成时解析,但可以立即用作对孩子位置的Reference

功能(路径,...)

orderByChild(路径)

创建一个由指定的子密钥订购的新QueryConstraint

查询一次只能按一个键订购。在同一查询上多次调用orderByChild()是一个错误。

Firebase查询允许您随时通过任何子键订购数据。但是,如果您事先知道您的索引是什么,则可以通过安全规则中的.Indexon规则定义它们,以提高性能。有关更多信息,请参见https://firebase.google.com/docs/database/security/indexing-data规则。

您可以在排序数据中阅读有关orderByChild()的更多信息

签名:

export declare function orderByChild(path: string): QueryConstraint;

参数

范围类型描述
小路细绳订单的途径。

返回:

QueryConstraint

功能(查询,...)

获取(查询)

获得此查询的最新结果。

签名:

export declare function get(query: Query): Promise<DataSnapshot>;

参数

范围类型描述
询问询问要运行的查询。

返回:

Promise < DataSnapShot >

如果客户端无法返回值(例如,如果服务器不可到达并且没有封存),则可以将Promise解析为所得的DataSnapShot,或者拒绝。

关闭(查询,EventType,回调)

onValue以前与相应的on*()附带的回调onChildAdded )听众。注意:这不是删除听众的建议方法。相反,请on*使用返回的回调函数。

取消以前on*()附加的回调。在父母侦听器上呼叫off()不会自动删除在子节点上注册的侦听器,也必须对任何儿童侦听器呼叫off()以删除回调。

如果未指定回调,则将删除指定的EventType的所有回调。同样,如果未指定EventType,则将删除所有Reference的回调。

也可以通过调用其退订的回调来删除单个听众。

签名:

export declare function off(query: Query, eventType?: EventType, callback?: (snapshot: DataSnapshot, previousChildName?: string | null) => unknown): void;

参数

范围类型描述
询问询问听众已注册的查询。
事件类型事件类型以下字符串之一:“ value”,“ child_added”,“ child_changed”,“ child_remaved”或“ child_maved”。如果省略,将删除所有Reference的回调。
打回来(快照: datasnapshot ,presonchildname?:字符串| null)=>未知传递给on()undefined以删除所有回调的回调函数。

返回:

空白

onChildAdded(查询、回调、cancelCallback)

在特定位置倾听数据更改。

这是从数据库中读取数据的主要方法。您的回调将被触发到初始数据,并在数据更改时再次触发。调用返回的退出回调以停止接收更新。有关更多详细信息,请参见网络上的数据

每个初始儿童在此位置将触发一次onChildAdded事件,每次添加新孩子时,都会再次触发。传递到回调的DataSnapshot将反映相关子女的数据。为了订购目的,它通过第二个参数,该参数是一个字符串,该字符串按顺序订单包含以前的兄弟姐妹的键,或者null第一个孩子(如果是第一个孩子)。

签名:

export declare function onChildAdded(query: Query, callback: (snapshot: DataSnapshot, previousChildName?: string | null) => unknown, cancelCallback?: (error: Error) => unknown): Unsubscribe;

参数

范围类型描述
询问询问要运行的查询。
打回来(快照: datasnapshot ,presonchildname?:字符串| null)=>未知当指定事件发生时发射的回调。回调将通过数据纳普照片和一个包含上一个孩子键的字符串,按顺序订购,如果是第一个孩子,则通过null
取消回扣(错误:错误)=>未知如果您的事件订阅已被取消,则会通知可选回调,因为您的客户没有许可阅读此数据(或已有许可,但现在丢失了数据)。该回调将通过一个Error对象,指示发生故障的原因。

返回:

退订

可以调用以删除侦听器的函数。

OnChildAdded(查询,回调,选项)

在特定位置倾听数据更改。

这是从数据库中读取数据的主要方法。您的回调将被触发到初始数据,并在数据更改时再次触发。调用返回的退出回调以停止接收更新。有关更多详细信息,请参见网络上的数据

每个初始儿童在此位置将触发一次onChildAdded事件,每次添加新孩子时,都会再次触发。传递到回调的DataSnapshot将反映相关子女的数据。为了订购目的,它通过第二个参数,该参数是一个字符串,该字符串按顺序订单包含以前的兄弟姐妹的键,或者null第一个孩子(如果是第一个孩子)。

签名:

export declare function onChildAdded(query: Query, callback: (snapshot: DataSnapshot, previousChildName: string | null) => unknown, options: ListenOptions): Unsubscribe;

参数

范围类型描述
询问询问要运行的查询。
打回来(快照: datasnapshot ,以前的奇数名:字符串| null)=>未知当指定事件发生时发射的回调。回调将通过数据纳普照片和一个包含上一个孩子键的字符串,按顺序订购,如果是第一个孩子,则通过null
选项听力一个可用于onlyOnce配置的对象,然后在第一次调用后删除侦听器。

返回:

退订

可以调用以删除侦听器的函数。

OnChildAdded(查询,回调,CancelCallback,选项)

在特定位置倾听数据更改。

这是从数据库中读取数据的主要方法。您的回调将被触发到初始数据,并在数据更改时再次触发。调用返回的退出回调以停止接收更新。有关更多详细信息,请参见网络上的数据

每个初始儿童在此位置将触发一次onChildAdded事件,每次添加新孩子时,都会再次触发。传递到回调的DataSnapshot将反映相关子女的数据。为了订购目的,它通过第二个参数,该参数是一个字符串,该字符串按顺序订单包含以前的兄弟姐妹的键,或者null第一个孩子(如果是第一个孩子)。

签名:

export declare function onChildAdded(query: Query, callback: (snapshot: DataSnapshot, previousChildName: string | null) => unknown, cancelCallback: (error: Error) => unknown, options: ListenOptions): Unsubscribe;

参数

范围类型描述
询问询问要运行的查询。
打回来(快照: datasnapshot ,以前的奇数名:字符串| null)=>未知当指定事件发生时发射的回调。回调将通过数据纳普照片和一个包含上一个孩子键的字符串,按顺序订购,如果是第一个孩子,则通过null
取消回扣(错误:错误)=>未知如果您的事件订阅已被取消,则会通知可选回调,因为您的客户没有许可阅读此数据(或已有许可,但现在丢失了数据)。该回调将通过一个Error对象,指示发生故障的原因。
选项听力一个可用于onlyOnce配置的对象,然后在第一次调用后删除侦听器。

返回:

退订

可以调用以删除侦听器的函数。

onChildChanged(查询、回调、cancelCallback)

在特定位置倾听数据更改。

这是从数据库中读取数据的主要方法。您的回调将被触发到初始数据,并在数据更改时再次触发。调用返回的退出回调以停止接收更新。有关更多详细信息,请参见网络上的数据

当存储在儿童(或其任何后代)更改中的数据时,将触发一个onChildChanged事件。请注意,单个child_changed事件可能代表对孩子的多次更改。传递给回调的DataSnapshot将包含新的孩子内容。为了订购目的,回调还通过了第二个参数,该参数是一个字符串,该字符串包含以前的兄弟姐妹子女的键,或者null第一个孩子(如果是第一个孩子)。

签名:

export declare function onChildChanged(query: Query, callback: (snapshot: DataSnapshot, previousChildName: string | null) => unknown, cancelCallback?: (error: Error) => unknown): Unsubscribe;

参数

范围类型描述
询问询问要运行的查询。
打回来(快照: datasnapshot ,以前的奇数名:字符串| null)=>未知当指定事件发生时发射的回调。回调将通过数据纳普照片和一个包含上一个孩子键的字符串,按顺序订购,如果是第一个孩子,则通过null
取消回扣(错误:错误)=>未知如果您的事件订阅已被取消,则会通知可选回调,因为您的客户没有许可阅读此数据(或已有许可,但现在丢失了数据)。该回调将通过一个Error对象,指示发生故障的原因。

返回:

退订

可以调用以删除侦听器的函数。

OnchildChanged(查询,回调,选项)

在特定位置倾听数据更改。

这是从数据库中读取数据的主要方法。您的回调将被触发到初始数据,并在数据更改时再次触发。调用返回的退出回调以停止接收更新。有关更多详细信息,请参见网络上的数据

当存储在儿童(或其任何后代)更改中的数据时,将触发一个onChildChanged事件。请注意,单个child_changed事件可能代表对孩子的多次更改。传递给回调的DataSnapshot将包含新的孩子内容。为了订购目的,回调还通过了第二个参数,该参数是一个字符串,该字符串包含以前的兄弟姐妹子女的键,或者null第一个孩子(如果是第一个孩子)。

签名:

export declare function onChildChanged(query: Query, callback: (snapshot: DataSnapshot, previousChildName: string | null) => unknown, options: ListenOptions): Unsubscribe;

参数

范围类型描述
询问询问要运行的查询。
打回来(快照: datasnapshot ,以前的奇数名:字符串| null)=>未知当指定事件发生时发射的回调。回调将通过数据纳普照片和一个包含上一个孩子键的字符串,按顺序订购,如果是第一个孩子,则通过null
选项听力一个可用于onlyOnce配置的对象,然后在第一次调用后删除侦听器。

返回:

退订

可以调用以删除侦听器的函数。

onChildChanged(查询,回调,CancelCallback,选项)

在特定位置倾听数据更改。

这是从数据库中读取数据的主要方法。您的回调将被触发到初始数据,并在数据更改时再次触发。调用返回的退出回调以停止接收更新。有关更多详细信息,请参见网络上的数据

当存储在儿童(或其任何后代)更改中的数据时,将触发一个onChildChanged事件。请注意,单个child_changed事件可能代表对孩子的多次更改。传递给回调的DataSnapshot将包含新的孩子内容。为了订购目的,回调还通过了第二个参数,该参数是一个字符串,该字符串包含以前的兄弟姐妹子女的键,或者null第一个孩子(如果是第一个孩子)。

签名:

export declare function onChildChanged(query: Query, callback: (snapshot: DataSnapshot, previousChildName: string | null) => unknown, cancelCallback: (error: Error) => unknown, options: ListenOptions): Unsubscribe;

参数

范围类型描述
询问询问要运行的查询。
打回来(快照: datasnapshot ,以前的奇数名:字符串| null)=>未知当指定事件发生时发射的回调。回调将通过数据纳普照片和一个包含上一个孩子键的字符串,按顺序订购,如果是第一个孩子,则通过null
取消回扣(错误:错误)=>未知如果您的事件订阅已被取消,则会通知可选回调,因为您的客户没有许可阅读此数据(或已有许可,但现在丢失了数据)。该回调将通过一个Error对象,指示发生故障的原因。
选项听力一个可用于onlyOnce配置的对象,然后在第一次调用后删除侦听器。

返回:

退订

可以调用以删除侦听器的函数。

OnChildMaved(查询,回调,CancelCallback)

在特定位置倾听数据更改。

这是从数据库中读取数据的主要方法。您的回调将被触发到初始数据,并在数据更改时再次触发。调用返回的退出回调以停止接收更新。有关更多详细信息,请参见网络上的数据

当孩子的排序订单变化以使其相对于兄弟姐妹的位置变化时,将触发一个onChildMoved事件。传递给回调的DataSnapshot将用于移动的孩子的数据。它还通过了第二个参数,该参数是一个字符串,该字符串包含以前的兄弟姐妹子女的键,或者是第null孩子(如果是第一个孩子)。

签名:

export declare function onChildMoved(query: Query, callback: (snapshot: DataSnapshot, previousChildName: string | null) => unknown, cancelCallback?: (error: Error) => unknown): Unsubscribe;

参数

范围类型描述
询问询问要运行的查询。
打回来(快照: datasnapshot ,以前的奇数名:字符串| null)=>未知当指定事件发生时发射的回调。回调将通过数据纳普照片和一个包含上一个孩子键的字符串,按顺序订购,如果是第一个孩子,则通过null
取消回扣(错误:错误)=>未知如果您的事件订阅已被取消,则会通知可选回调,因为您的客户没有许可阅读此数据(或已有许可,但现在丢失了数据)。该回调将通过一个Error对象,指示发生故障的原因。

返回:

退订

可以调用以删除侦听器的函数。

onChildMoved(查询、回调、选项)

在特定位置倾听数据更改。

这是从数据库中读取数据的主要方法。您的回调将被触发到初始数据,并在数据更改时再次触发。调用返回的退出回调以停止接收更新。有关更多详细信息,请参见网络上的数据

当孩子的排序订单变化以使其相对于兄弟姐妹的位置变化时,将触发一个onChildMoved事件。传递给回调的DataSnapshot将用于移动的孩子的数据。它还通过了第二个参数,该参数是一个字符串,该字符串包含以前的兄弟姐妹子女的键,或者是第null孩子(如果是第一个孩子)。

签名:

export declare function onChildMoved(query: Query, callback: (snapshot: DataSnapshot, previousChildName: string | null) => unknown, options: ListenOptions): Unsubscribe;

参数

范围类型描述
询问询问要运行的查询。
打回来(快照: datasnapshot ,以前的奇数名:字符串| null)=>未知当指定事件发生时发射的回调。回调将通过数据纳普照片和一个包含上一个孩子键的字符串,按顺序订购,如果是第一个孩子,则通过null
选项听力一个可用于onlyOnce配置的对象,然后在第一次调用后删除侦听器。

返回:

退订

可以调用以删除侦听器的函数。

onChildMoved(查询、回调、cancelCallback、选项)

在特定位置倾听数据更改。

这是从数据库中读取数据的主要方法。您的回调将被触发到初始数据,并在数据更改时再次触发。调用返回的退出回调以停止接收更新。有关更多详细信息,请参见网络上的数据

当孩子的排序订单变化以使其相对于兄弟姐妹的位置变化时,将触发一个onChildMoved事件。传递给回调的DataSnapshot将用于移动的孩子的数据。它还通过了第二个参数,该参数是一个字符串,该字符串包含以前的兄弟姐妹子女的键,或者是第null孩子(如果是第一个孩子)。

签名:

export declare function onChildMoved(query: Query, callback: (snapshot: DataSnapshot, previousChildName: string | null) => unknown, cancelCallback: (error: Error) => unknown, options: ListenOptions): Unsubscribe;

参数

范围类型描述
询问询问要运行的查询。
打回来(快照: datasnapshot ,以前的奇数名:字符串| null)=>未知当指定事件发生时发射的回调。回调将通过数据纳普照片和一个包含上一个孩子键的字符串,按顺序订购,如果是第一个孩子,则通过null
取消回扣(错误:错误)=>未知如果您的事件订阅已被取消,则会通知可选回调,因为您的客户没有许可阅读此数据(或已有许可,但现在丢失了数据)。该回调将通过一个Error对象,指示发生故障的原因。
选项听力一个可用于onlyOnce配置的对象,然后在第一次调用后删除侦听器。

返回:

退订

可以调用以删除侦听器的函数。

OnChildRemaved(查询,回调,CancelCallback)

在特定位置倾听数据更改。

这是从数据库中读取数据的主要方法。您的回调将被触发到初始数据,并在数据更改时再次触发。调用返回的退出回调以停止接收更新。有关更多详细信息,请参见网络上的数据

每次删除孩子时,就会触发一场onChildRemoved事件。传递到回调DataSnapshot将是被删除的孩子的旧数据。两者都会被删除。

  • 客户在该孩子或其祖先之一上明确调用remove() - 该孩子或其祖先之一的客户呼叫set(null) - 该孩子已将其所有孩子删除 - 实际上有一个查询,现在有效地过滤了淘汰孩子(因为排序订单更改或最大限制被击中)

签名:

export declare function onChildRemoved(query: Query, callback: (snapshot: DataSnapshot) => unknown, cancelCallback?: (error: Error) => unknown): Unsubscribe;

参数

范围类型描述
询问询问要运行的查询。
打回来(快照: datasnapshot )=>未知当指定事件发生时发射的回调。回调将通过数据纳普照片和一个包含上一个孩子键的字符串,按顺序订购,如果是第一个孩子,则通过null
取消回扣(错误:错误)=>未知如果您的事件订阅已被取消,则会通知可选回调,因为您的客户没有许可阅读此数据(或已有许可,但现在丢失了数据)。该回调将通过一个Error对象,指示发生故障的原因。

返回:

退订

可以调用以删除侦听器的函数。

OnChildRemaved(查询,回调,选项)

在特定位置倾听数据更改。

这是从数据库中读取数据的主要方法。您的回调将被触发到初始数据,并在数据更改时再次触发。调用返回的退出回调以停止接收更新。有关更多详细信息,请参见网络上的数据

每次删除孩子时,就会触发一场onChildRemoved事件。传递到回调DataSnapshot将是被删除的孩子的旧数据。两者都会被删除。

  • 客户在该孩子或其祖先之一上明确调用remove() - 该孩子或其祖先之一的客户呼叫set(null) - 该孩子已将其所有孩子删除 - 实际上有一个查询,现在有效地过滤了淘汰孩子(因为排序订单更改或最大限制被击中)

签名:

export declare function onChildRemoved(query: Query, callback: (snapshot: DataSnapshot) => unknown, options: ListenOptions): Unsubscribe;

参数

范围类型描述
询问询问要运行的查询。
打回来(快照: datasnapshot )=>未知当指定事件发生时发射的回调。回调将通过数据纳普照片和一个包含上一个孩子键的字符串,按顺序订购,如果是第一个孩子,则通过null
选项听力一个可用于onlyOnce配置的对象,然后在第一次调用后删除侦听器。

返回:

退订

可以调用以删除侦听器的函数。

OnChildRemaved(查询,回调,CancelCallback,选项)

在特定位置倾听数据更改。

这是从数据库中读取数据的主要方法。您的回调将被触发到初始数据,并在数据更改时再次触发。调用返回的退出回调以停止接收更新。有关更多详细信息,请参见网络上的数据

每次删除孩子时,就会触发一场onChildRemoved事件。传递到回调DataSnapshot将是被删除的孩子的旧数据。两者都会被删除。

  • 客户在该孩子或其祖先之一上明确调用remove() - 该孩子或其祖先之一的客户呼叫set(null) - 该孩子已将其所有孩子删除 - 实际上有一个查询,现在有效地过滤了淘汰孩子(因为排序订单更改或最大限制被击中)

签名:

export declare function onChildRemoved(query: Query, callback: (snapshot: DataSnapshot) => unknown, cancelCallback: (error: Error) => unknown, options: ListenOptions): Unsubscribe;

参数

范围类型描述
询问询问要运行的查询。
打回来(快照: datasnapshot )=>未知当指定事件发生时发射的回调。回调将通过数据纳普照片和一个包含上一个孩子键的字符串,按顺序订购,如果是第一个孩子,则通过null
取消回扣(错误:错误)=>未知如果您的事件订阅已被取消,则会通知可选回调,因为您的客户没有许可阅读此数据(或已有许可,但现在丢失了数据)。该回调将通过一个Error对象,指示发生故障的原因。
选项听力一个可用于onlyOnce配置的对象,然后在第一次调用后删除侦听器。

返回:

退订

可以调用以删除侦听器的函数。

onValue(查询、回调、cancelCallback)

在特定位置倾听数据更改。

这是从数据库中读取数据的主要方法。您的回调将被触发到初始数据,并在数据更改时再次触发。调用返回的退出回调以停止接收更新。有关更多详细信息,请参见网络上的数据

一个onValue事件将触发一次,然后将初始数据存储在此位置,然后每次数据更改时再次触发。传递给回调的DataSnapshot将用于调用on()位置。直到整个内容都同步后,它才会触发。如果该位置没有数据,则将使用一个空的数据纳普( DataSnapshot触发( val()将返回null )。

签名:

export declare function onValue(query: Query, callback: (snapshot: DataSnapshot) => unknown, cancelCallback?: (error: Error) => unknown): Unsubscribe;

参数

范围类型描述
询问询问要运行的查询。
打回来(快照: datasnapshot )=>未知当指定事件发生时发射的回调。回调将通过DatasNapshot传递。
取消回扣(错误:错误)=>未知如果您的事件订阅已被取消,则会通知可选回调,因为您的客户没有许可阅读此数据(或已有许可,但现在已经丢失了数据)。该回调将通过一个Error对象,指示发生故障的原因。

返回:

退订

可以调用以删除侦听器的函数。

onValue(查询、回调、选项)

在特定位置倾听数据更改。

这是从数据库中读取数据的主要方法。您的回调将被触发到初始数据,并在数据更改时再次触发。调用返回的退出回调以停止接收更新。有关更多详细信息,请参见网络上的数据

一个onValue事件将触发一次,然后将初始数据存储在此位置,然后每次数据更改时再次触发。传递给回调的DataSnapshot将用于调用on()位置。直到整个内容都同步后,它才会触发。如果该位置没有数据,则将使用一个空的数据纳普( DataSnapshot触发( val()将返回null )。

签名:

export declare function onValue(query: Query, callback: (snapshot: DataSnapshot) => unknown, options: ListenOptions): Unsubscribe;

参数

范围类型描述
询问询问要运行的查询。
打回来(快照: datasnapshot )=>未知当指定事件发生时发射的回调。回调将通过DatasNapshot传递。
选项听力一个可用于onlyOnce配置的对象,然后在第一次调用后删除侦听器。

返回:

退订

可以调用以删除侦听器的函数。

onValue(查询,回调,cancelCallback,选项)

在特定位置倾听数据更改。

这是从数据库中读取数据的主要方法。您的回调将被触发到初始数据,并在数据更改时再次触发。调用返回的退出回调以停止接收更新。有关更多详细信息,请参见网络上的数据

一个onValue事件将触发一次,然后将初始数据存储在此位置,然后每次数据更改时再次触发。传递给回调的DataSnapshot将用于调用on()位置。直到整个内容都同步后,它才会触发。如果该位置没有数据,则将使用一个空的数据纳普( DataSnapshot触发( val()将返回null )。

签名:

export declare function onValue(query: Query, callback: (snapshot: DataSnapshot) => unknown, cancelCallback: (error: Error) => unknown, options: ListenOptions): Unsubscribe;

参数

范围类型描述
询问询问要运行的查询。
打回来(快照: datasnapshot )=>未知当指定事件发生时发射的回调。回调将通过DatasNapshot传递。
取消回扣(错误:错误)=>未知如果您的事件订阅已被取消,则会通知可选回调,因为您的客户没有许可阅读此数据(或已有许可,但现在已经丢失了数据)。该回调将通过一个Error对象,指示发生故障的原因。
选项听力一个可用于onlyOnce配置的对象,然后在第一次调用后删除侦听器。

返回:

退订

可以调用以删除侦听器的函数。

查询(查询,查询)

创建一个新的不变的Query实例,该实例已扩展为还包括其他查询约束。

签名:

export declare function query(query: Query, ...queryConstraints: QueryConstraint[]): Query;

参数

范围类型描述
询问询问查询实例用作新约束的基础。
查询QueryConstraint []要应用的QueryConstraint列表。

返回:

询问

例外情况

如果提供的任何查询约束不能与现有或新约束结合使用。

功能(参考,...)

OnDisconnect(参考)

返回一个OnDisconnect对象 - 有关如何使用它的更多信息,请参见启用JavaScript中的离线功能

签名:

export declare function onDisconnect(ref: DatabaseReference): OnDisconnect;

参数

范围类型描述
参考dataBaseReference为添加触发触发器的参考。

返回:

OnDisconnect

删除(参考)

在此数据库位置删除数据。

儿童位置的任何数据也将被删除。

将立即可见删除的效果,并触发相应的事件“值”。还将启动删除到火箱服务器的同步,并且返回的诺言将在完成后解决。如果提供,在同步完成后,Compleplete回调将异步调用。

签名:

export declare function remove(ref: DatabaseReference): Promise<void>;

参数

范围类型描述
参考dataBaseReference要删除的位置。

返回:

承诺<无效>

当删除服务器上的删除完成时,请解决。

RunTransaction(参考,TransactionUpdate,选项)

原子在此位置修改数据。

原子在此位置修改数据。与普通set()不同, which just overwrites the data regardless of its previous value, runTransaction() is used to modify the existing value to a new value, ensuring there are no conflicts with other clients writing to the same location at the same time.

To accomplish this, you pass runTransaction() an update function which is used to transform the current value into a new value. If another client writes to the location before your new value is successfully written, your update function will be called again with the new current value, and the write will be retried. This will happen repeatedly until your write succeeds without conflict or you abort the transaction by not returning a value from your update function.

签名:

export declare function runTransaction(ref: DatabaseReference, transactionUpdate: (currentData: any) => unknown, options?: TransactionOptions): Promise<TransactionResult>;

参数

范围类型描述
参考DatabaseReference The location to atomically modify.
transactionUpdate (currentData: any) => unknown A developer-supplied function which will be passed the current data stored at this location (as a JavaScript object). The function should return the new value it would like written (as a JavaScript object). If undefined is returned (ie you return with no arguments) the transaction will be aborted and the data at this location will not be modified.
选项TransactionOptions An options object to configure transactions.

返回:

Promise< TransactionResult >

A Promise that can optionally be used instead of the onComplete callback to handle success and failure.

设置(参考,值)

Writes data to this Database location.

This will overwrite any data at this location and all child locations.

The effect of the write will be visible immediately, and the corresponding events ("value", "child_added", etc.) will be triggered. Synchronization of the data to the Firebase servers will also be started, and the returned Promise will resolve when complete. If provided, the onComplete callback will be called asynchronously after synchronization has finished.

Passing null for the new value is equivalent to calling remove() ; namely, all data at this location and all child locations will be deleted.

set() will remove any priority stored at this location, so if priority is meant to be preserved, you need to use setWithPriority() instead.

Note that modifying data with set() will cancel any pending transactions at that location, so extreme care should be taken if mixing set() and transaction() to modify the same data.

A single set() will generate a single "value" event at the location where the set() was performed.

签名:

export declare function set(ref: DatabaseReference, value: unknown): Promise<void>;

参数

范围类型描述
参考DatabaseReference The location to write to.
价值未知The value to be written (string, number, boolean, object, array, or null).

返回:

承诺<无效>

Resolves when write to server is complete.

setPriority(ref, priority)

Sets a priority for the data at this Database location.

Applications need not use priority but can order collections by ordinary properties (see Sorting and filtering data ).

签名:

export declare function setPriority(ref: DatabaseReference, priority: string | number | null): Promise<void>;

参数

范围类型描述
参考DatabaseReference The location to write to.
优先事项字符串|数量 |无效的The priority to be written (string, number, or null).

返回:

承诺<无效>

Resolves when write to server is complete.

setWithPriority(ref, value, priority)

Writes data the Database location. Like set() but also specifies the priority for that data.

Applications need not use priority but can order collections by ordinary properties (see Sorting and filtering data ).

签名:

export declare function setWithPriority(ref: DatabaseReference, value: unknown, priority: string | number | null): Promise<void>;

参数

范围类型描述
参考DatabaseReference The location to write to.
价值未知The value to be written (string, number, boolean, object, array, or null).
优先事项字符串|数量 |无效的The priority to be written (string, number, or null).

返回:

承诺<无效>

Resolves when write to server is complete.

update(ref, values)

Writes multiple values to the Database at once.

The values argument contains multiple property-value pairs that will be written to the Database together. Each child property can either be a simple property (for example, "name") or a relative path (for example, "name/first") from the current location to the data to update.

As opposed to the set() method, update() can be use to selectively update only the referenced properties at the current location (instead of replacing all the child properties at the current location).

The effect of the write will be visible immediately, and the corresponding events ('value', 'child_added', etc.) will be triggered. Synchronization of the data to the Firebase servers will also be started, and the returned Promise will resolve when complete. If provided, the onComplete callback will be called asynchronously after synchronization has finished.

A single update() will generate a single "value" event at the location where the update() was performed, regardless of how many children were modified.

Note that modifying data with update() will cancel any pending transactions at that location, so extreme care should be taken if mixing update() and transaction() to modify the same data.

Passing null to update() will remove the data at this location.

See Introducing multi-location updates and more

签名:

export declare function update(ref: DatabaseReference, values: object): Promise<void>;

参数

范围类型描述
参考DatabaseReference The location to write to.
价值观目的Object containing multiple values.

返回:

承诺<无效>

Resolves when update on server is complete.

函数(值,...)

结束处(值,键)

Creates a QueryConstraint with the specified ending point.

Using startAt() , startAfter() , endBefore() , endAt() and equalTo() allows you to choose arbitrary starting and ending points for your queries.

The ending point is inclusive, so children with exactly the specified value will be included in the query. The optional key argument can be used to further limit the range of the query. If it is specified, then children that have exactly the specified value must also have a key name less than or equal to the specified key.

You can read more about endAt() in Filtering data

签名:

export declare function endAt(value: number | string | boolean | null, key?: string): QueryConstraint;

参数

范围类型描述
价值数量 |字符串|布尔 |无效的The value to end at. The argument type depends on which orderBy () function was used in this query. Specify a value that matches the orderBy () type. When used in combination with orderByKey() , the value must be a string.
钥匙细绳The child key to end at, among the children with the previously specified priority. This argument is only allowed if ordering by child, value, or priority.

返回:

QueryConstraint

结束之前(值,键)

Creates a QueryConstraint with the specified ending point (exclusive).

Using startAt() , startAfter() , endBefore() , endAt() and equalTo() allows you to choose arbitrary starting and ending points for your queries.

The ending point is exclusive. If only a value is provided, children with a value less than the specified value will be included in the query. If a key is specified, then children must have a value less than or equal to the specified value and a key name less than the specified key.

签名:

export declare function endBefore(value: number | string | boolean | null, key?: string): QueryConstraint;

参数

范围类型描述
价值数量 |字符串|布尔 |无效的The value to end before. The argument type depends on which orderBy () function was used in this query. Specify a value that matches the orderBy () type. When used in combination with orderByKey() , the value must be a string.
钥匙细绳The child key to end before, among the children with the previously specified priority. This argument is only allowed if ordering by child, value, or priority.

返回:

QueryConstraint

equalTo(value, key)

Creates a QueryConstraint that includes children that match the specified value.

Using startAt() , startAfter() , endBefore() , endAt() and equalTo() allows you to choose arbitrary starting and ending points for your queries.

The optional key argument can be used to further limit the range of the query. If it is specified, then children that have exactly the specified value must also have exactly the specified key as their key name. This can be used to filter result sets with many matches for the same value.

You can read more about equalTo() in Filtering data

签名:

export declare function equalTo(value: number | string | boolean | null, key?: string): QueryConstraint;

参数

范围类型描述
价值数量 |字符串|布尔 |无效的The value to match for. The argument type depends on which orderBy () function was used in this query. Specify a value that matches the orderBy () type. When used in combination with orderByKey() , the value must be a string.
钥匙细绳The child key to start at, among the children with the previously specified priority. This argument is only allowed if ordering by child, value, or priority.

返回:

QueryConstraint

开始之后(值,键)

Creates a QueryConstraint with the specified starting point (exclusive).

Using startAt() , startAfter() , endBefore() , endAt() and equalTo() allows you to choose arbitrary starting and ending points for your queries.

The starting point is exclusive. If only a value is provided, children with a value greater than the specified value will be included in the query. If a key is specified, then children must have a value greater than or equal to the specified value and aa key name greater than the specified key.

签名:

export declare function startAfter(value: number | string | boolean | null, key?: string): QueryConstraint;

参数

范围类型描述
价值数量 |字符串|布尔 |无效的The value to start after. The argument type depends on which orderBy () function was used in this query. Specify a value that matches the orderBy () type. When used in combination with orderByKey() , the value must be a string.
钥匙细绳The child key to start after. This argument is only allowed if ordering by child, value, or priority.

返回:

QueryConstraint

startAt(value, key)

Creates a QueryConstraint with the specified starting point.

Using startAt() , startAfter() , endBefore() , endAt() and equalTo() allows you to choose arbitrary starting and ending points for your queries.

The starting point is inclusive, so children with exactly the specified value will be included in the query. The optional key argument can be used to further limit the range of the query. If it is specified, then children that have exactly the specified value must also have a key name greater than or equal to the specified key.

You can read more about startAt() in Filtering data

签名:

export declare function startAt(value?: number | string | boolean | null, key?: string): QueryConstraint;

参数

范围类型描述
价值数量 |字符串|布尔 |无效的The value to start at. The argument type depends on which orderBy () function was used in this query. Specify a value that matches the orderBy () type. When used in combination with orderByKey() , the value must be a string.
钥匙细绳The child key to start at. This argument is only allowed if ordering by child, value, or priority.

返回:

QueryConstraint

事件类型

One of the following strings: "value", "child_added", "child_changed", "child_removed", or "child_moved."

签名:

export declare type EventType = 'value' | 'child_added' | 'child_changed' | 'child_moved' | 'child_removed';

QueryConstraintType

Describes the different query constraints available in this SDK.

签名:

export declare type QueryConstraintType = 'endAt' | 'endBefore' | 'startAt' | 'startAfter' | 'limitToFirst' | 'limitToLast' | 'orderByChild' | 'orderByKey' | 'orderByPriority' | 'orderByValue' | 'equalTo';

退订

A callback that can invoked to remove a listener.

签名:

export declare type Unsubscribe = () => void;