每个数据库的URL是否应解析为不同的数据库?

时间:2019-07-15 15:58:25

标签: firebase firebase-realtime-database

直接访问Firebase实时数据库的Firebase参考URL的问题。

观察1:

该项目位于IoS中,我在AppDeleage中具有以下代码:

//设置默认数据库 FirebaseApp.configure()

//设置SecondDB FirebaseApp.configure(名称:“ secondDB”,选项:secondDBOptions)

我使用.read!= null规则在DB1中添加记录没有问题。 我还设置了相同的规则.read!= null,以为所有经过身份验证的用户都将能够访问数据。

在一个视图控制器中用于从SecondDB检索数据的代码如下:

guard let secondDBNews = FirebaseApp.app(名称:“ secondDBDBs”)         else {assert(false,“无法检索新闻”)}

let usersDB = Database.database(app:secondDBNews).reference()。child(mainDelegate.firebaseEnvironment).child(“ Users”)。child(String(Auth.auth()。currentUser?.uid ??“ “))

usersDB.queryOrdered(byChild:“ Email”)。observeSingleEvent(of:.childAdded,带有:         {快照在... ... ...

上面的代码看起来不错,并且在.read = true时可读(任何人都可以读取)。 但是,如果将其设置为.read!= null,则错误表明它没有权限。

观察2:

默认的网址为 https://DefaultDB-1234.firebaseio.com/

第二个数据库的网址如下: https://SeconDB-1234-abc.firebaseio.com/

2 Databases - Default & Second

对于第一个,我可以这样在浏览器中加载URL: https://defaultDB-1234.firebaseio.com/Dev/User1/Projects

DefaultDB contains data

它将在树下显示数据。

secondDB还包含数据。

enter image description here

但是,当我尝试在浏览器中加载URL时: https://SecondDB-1234-abc.firebaseio.com/Dev/Article/Day1

它不是从SecondDB加载数据,而是解析为加载DefaultDB,并告诉我该数据为NULL,即使那里有数据。 Result shows null

问题: 1.两种观察是否相互关联? 2.我是否特别错过了任何身份验证配置?

1 个答案:

答案 0 :(得分:0)

似乎第二个数据库需要直接由url字符串引用。

所以: FirebaseApp.configure(名称:“ secondDB”,选项:secondDBOptions)

不起作用。

相反: 让secondDBURL =“ https://SecondDB-1234-abc.firebaseio.com

然后

直接访问Firebase实时数据库的Firebase参考URL的问题。

观察1:

该项目位于IoS中,我在AppDeleage中具有以下代码:

//设置默认数据库FirebaseApp.configure()

//设置SecondDB FirebaseApp.configure(名称:“ secondDB”,选项:secondDBOptions)

我使用.read!= null规则在DB1中添加记录没有问题。我还设置了相同的规则.read!= null,以为所有经过身份验证的用户都将能够访问数据。

在一个视图控制器中用于从SecondDB检索数据的代码如下:

guard let secondDBNews = FirebaseApp.app(name:“ secondDBNews”)else {assert(false,“无法检索新闻”)}

let usersDB = Database.database(app:secondDBURL).reference()。child(mainDelegate.firebaseEnvironment).child(“ Users”)。child(String(Auth.auth()。currentUser?.uid ??“ “))

会工作的。