我已将我的应用程序数据存储在Firebase数据库中的/ users /#USERID#中。
是否存在检查用户ID是否存在的正确方法?在我的应用程序中,当用户首先创建一个帐户,然后根据需要填充数据时,我会创建一个users / userID元素。在某些情况下,我希望能够从我们的管理端来填充用户帐户,并且很多时候他们可能还没有任何数据,本质上是创建了users /#userId#节点,但里面是空的。我似乎看不到密钥是否存在。当我抓取快照时,即使我手动添加了快照,当我在数据快照上调用.exists()时,它始终会返回false。如果我向该节点添加简单的键/值,则exist()调用将返回true。
我一直在搜索堆栈溢出,似乎我不应该将用户数据存储在其用户ID密钥下。有没有办法做我想做的事?
是这种情况还是我错过了什么?
下面是一些示例代码:
DatabaseReference ref = firebase.getDatabaseReference().child("users").child(sbUserId);
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
log.info("account {} exists!", sbUserId);
}
else {
log.info("account {} does NOT exist", sbUserId);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});