我想在我的google cloud函数中收听两个数据库,所以我尝试了
let panGesture = UIPanGestureRecognizer(target: self, action:(#selector(self.handleGesture(_:))))
self.view.addGestureRecognizer(panGesture)
@objc func handleGesture(_ sender: UIPanGestureRecognizer) {
switch sender.state {
case .began:
case .changed:
case .cancelled:
case .ended:
default:
break
}
}
然后我尝试调用第二个数据库
const app1 = admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://honey.firebaseio.com"
});
const app2 = admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://honey-d8.firebaseio.com/"
}, 'app2');
// Get the default database instance for an app1
var OperationDB = admin.database().ref();
// Get a database instance for app2
var userDB = admin.database(app2).ref();
每当我尝试部署文件时,都会出现此错误
无法读取未定义的属性'ref'
两个数据库在同一个项目中
我尝试了各种变化,但没有运气。我在做什么错,该如何解决?
答案 0 :(得分:2)
您不能将Cloud Function附加到任意数据库引用。 Cloud Functions数据库触发器与您通过客户端SDK获得的侦听器不同。它从实时数据库接收事件的发生。
您必须use the provided API来构建一个引用特定数据库和路径以接收更新的函数。
您不能在部署该功能的项目之外引用数据库。
您可以在同一项目中引用数据库的多个分片。为此,您必须specify the name of the shard instance using the provided API。如果您未使用instance()方法在函数生成器中命名该实例,则您只会接收来自主/默认分片的事件。
如果要在每个分片中的同一位置处理所有分片的事件,则必须为每个分片导出一个函数,并且每个分片都可以委派给同一助手函数来处理事件。