Когда вызывается триггер базы данных реального времени, вторым аргументом является объект EventContext , который содержит информацию об обновленной базе данных и узле. Этот объект содержит строку resource , которая содержит то, что вы ищете. Согласно документации для этой строки, ее свойство name будет отформатировано как:
projects/_/instances/<databaseInstance>/refs/<databasePath>
Строка databaseInstance
- это то, что вы ищете. Таким образом, вы можете просто разбить строку на «/» и взять 4-й элемент этого массива:
export const yourFunction = functions.database
.instance('yourShard')
.ref('yourNode')
.onCreate((snap, context) => {
const parts = context.resource.name.split('/')
const shard = parts[3]
console.log(shard)
})
Если все, что вам нужно, это ссылка на местоположение изменения, чтобы выполнить некоторые изменения там вы можете просто использовать свойство ref
в DataSnapshot , которое было доставлено в первом аргументе, и построить путь относительно него.