我正在使用Firebase实时数据库制作Android应用程序.当新用户在我的应用上注册时,该用户的数据将保存在Firebase数据库中.
用户必须提供以下详细信息才能注册:
每当新用户尝试注册时,我必须确保每个用户的用户名都是唯一的,因此我检查数据库是否username用户输入的数据库已存在于数据库中.
为此,我编写了以下方法:
private boolean usernameExists(String username) {
DatabaseReference fdbRefer = FirebaseDatabase.getInstance().getReference("Users/"+username);
return (fdbRefer != null);
}
Run Code Online (Sandbox Code Playgroud)
我的这种方法背后的逻辑是,如果getReference方法无法找到引用到指定的路径,它会返回null,这样我可以返回是否fdbRefer是null或不是.如果fdbRefer是null,则表示username数据库中不存在.
此方法的问题在于它始终返回true输入是否username存在于数据库中.这让我相信这fdbRefer永远不会null.
这让我想到了我的问题......
什么getReference方法返回时,它无法找到在指定的路径firebase数据库,什么是检查是否正确的方法username已经在数据库中存在与否?
假设我们有一个名为datasize 的数组5.如果我们将此数组作为参数传递给std::end函数
int *ptr = std::end(data);
Run Code Online (Sandbox Code Playgroud)
它将返回指向数组中最后一个元素的内存位置的指针.
题
指针指向一个超过数组中最后一个元素的内存位置有什么意义?为什么不指向数组中的最后一个元素?
我有两个问题.
第一个问题
我读关于迭代器在C++从C++ primer 5th edition书.在本书的一个代码示例中,给出了以下代码片段将在向量中找到中间元素vi
auto mid = vi.begin() + vi.size() / 2;
Run Code Online (Sandbox Code Playgroud)
现在我想问一下,为什么vi.begin()加入vi.size()?会不会vi.size()/2有足够找到矢量中间元素vi?
第二个问题
auto mid = vi.begin() + vi.size() / 2;
Run Code Online (Sandbox Code Playgroud)
在此代码段中,如果我vi.begin() + vi.size()像这样添加括号:
auto mid = (vi.begin() + vi.size()) / 2;
Run Code Online (Sandbox Code Playgroud)
它抛出错误 no "/" operator matches these operands...
为什么会抛出这个错误?我问这个是因为逻辑上这个表达式vi.begin() + vi.size()应该首先计算,结果应该除以2.
如果我错了,请纠正我.
我是Bootstrap的初学者,我正在使用bootstrap处理样式表单.我试图使用form-horizontal引导类BUT标签和文本字段创建一个水平形式不显示在同一水平线.
我已经看过关于它的教程,我从该教程中复制了相同的完全代码,但它对我不起作用,而它适用于本教程的讲师.
需要帮助找出问题所在
这是相关的代码codepen链接
<div class="row">
<div class="col-sm-6">
<form class="form-horizontal">
<div class="form-group">
<label class="col-sm-4 control-label">First Name</label>
<div class="col-sm-8">
<input type="text" class="form-control"/>
</div>
</div>
</form>
</div><!--end of column-->
</div><!--end of row-->
Run Code Online (Sandbox Code Playgroud)