直接访问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
它将在树下显示数据。
secondDB还包含数据。
但是,当我尝试在浏览器中加载URL时: https://SecondDB-1234-abc.firebaseio.com/Dev/Article/Day1
它不是从SecondDB加载数据,而是解析为加载DefaultDB,并告诉我该数据为NULL,即使那里有数据。 Result shows null
问题: 1.两种观察是否相互关联? 2.我是否特别错过了任何身份验证配置?
答案 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 ??“ “))
会工作的。