如何更改参考上Firebase Cloud Function onCreate调用的数据库的URL?

时间:2018-12-14 08:30:30

标签: android firebase google-cloud-functions firebase-admin

由于Firebase不提供用于调试和生产的单独数据库,所以我决定为我的应用程序创建一个单独的数据库以进行测试。我有一个firebase函数,它可以监听数据库中的更改,但是无法创建一个新函数来监听新的数据库URL。

如何更改数据库的URL?

我尝试过:

user_df = sqlContext.read.format("jdbc").options(
                                   url="jdbc:mysql://HOST/DB_NAME?useUnicode=true&characterEncoding=UTF-8",
                                   driver="com.mysql.jdbc.Driver",
                                   dbtable="users",
                                   user="root",
                                   password="root"
                                  ).load()

在尝试部署时说

export const sendNotificationTest = functions.database
    .instance("https://appname-1234.firebaseio.com/")
    .ref('/conversations/{conversationID}/{messageID}')
    .onCreate(async (change, context) => {}

这两个数据库都存在于同一项目中,如下所示-

2 个答案:

答案 0 :(得分:1)

使用Cloud Functions数据库触发器,您只能在运行函数的同一项目中使用该数据库。函数无法在不在同一项目中的数据库或其他资源上触发。

函数创建器上的instance()方法仅允许您在同一项目中选择数据库的shard(如果已创建)。默认情况下,实时数据库只有一个分片,您无需在函数中调用它。如果您有多个分片,并且想要专门触发其中一个,则需要将其调出。

答案 1 :(得分:1)

根据guides,似乎您应该放置实例的名称,而不是URL。因此,在上面的示例中,它将是appname-1234