【发布时间】:2019-02-20 15:57:44
【问题描述】:
如何在使用唯一 ID 插入数据之前搜索/检查 firebase 实时数据库中的数据,例如此处的屏幕截图: myfirebase data
(截图如下)
+用户
--LMXmJKkb8khQa08zRtD
-----姓名:“约翰”
-----状态:1
--LMXmRscUZPvp00oVv5s
-----姓名:“彼得”
-----状态:1
注意:该应用不知道或拥有唯一 ID 的副本,因此我无法直接访问它。
我想在将“名称”添加/插入到数据库之前检查它是否唯一。
这是我到目前为止所做的代码(注意这是 C++,你可以用任何语言发布你的答案)
firebase::database::DatabaseReference userRef = database->GetReference();
SampleValueListener* listner = new SampleValueListener();
userRef.Child("users").OrderByChild("name").EqualTo("John").AddValueListener(listner);
class SampleValueListener : public firebase::database::ValueListener {
public:
void OnValueChanged(
const firebase::database::DataSnapshot& snapshot) override {
if (snapshot.exists()) {
printf("\nData exist");
}
}
void OnCancelled(const firebase::database::Error& error_code,
const char* error_message) override {
printf("ERROR: SampleValueListener canceled: %d: %s", error_code,
error_message);
}
};
到目前为止,我遇到了一个错误:
错误:SampleValueListener 已取消:10:索引未定义,将“.indexOn”:“name”,用于路径“/users”添加到规则中
所以我需要以下帮助:
那么当我无法直接访问时如何设置索引如何访问唯一标识符下的名称?
我做对了吗? (来自上面的代码),如何在添加值之前检查“名称”是否存在?
【问题讨论】:
标签: firebase firebase-realtime-database