Java 如何从Firebase获得价值
我是android新手,我想从Firebase数据库中获取Java 如何从Firebase获得价值,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我是android新手,我想从Firebase数据库中获取用户ID,我尝试过使用它,但它返回null 通过使用此代码 常量的值。ARG\u聊天组\u聊天室=组和常量。新建节点=新建组 数据库结构是这样的吗 如我所见,它不是数组,而是字符串。要获取用户ID,请使用以下代码: DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); DatabaseReference yourRef = roo
用户ID
,我尝试过使用它,但它返回null
- 通过使用此代码
=常量的值。ARG\u聊天组\u聊天室
和组
=常量。新建节点
新建组
- 数据库结构是这样的吗
如我所见,它不是数组,而是字符串。要获取
用户ID
,请使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference yourRef = rootRef.child(Constants.ARG_CHAT_GROUP_ROOMS).child(senderUid).child(Constants.NEW_NODE);
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String usersIDS = dataSnapshot.child("usersIDS").getValue(String.class);
Log.d("TAG", usersIDS);
//Here you can split the usersIDS String by , (comma)
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
yourRef.addListenerForSingleValueEvent(eventListener);
其中,
senderUid
是缺少的子项。此子级可以具有类似于1505217176288\u myGroupName\u 1
的值或其他共同响应的组名 如我所见,它不是数组,而是字符串。要获取用户ID
,请使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference yourRef = rootRef.child(Constants.ARG_CHAT_GROUP_ROOMS).child(senderUid).child(Constants.NEW_NODE);
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String usersIDS = dataSnapshot.child("usersIDS").getValue(String.class);
Log.d("TAG", usersIDS);
//Here you can split the usersIDS String by , (comma)
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
yourRef.addListenerForSingleValueEvent(eventListener);
其中,
senderUid
是缺少的子项。此子级可以具有类似于1505217176288\u myGroupName\u 1
的值或其他共同响应的组名 如果你想在15052169227329_myGroupName_Hell By Anne下找到第一个:你的问题是你忘记了“Constants.NEW_node”之前的节点
如果你想要15052169227329_myGroupName_Hell By Anne下的第一个:你的问题是你忘记了“Constants.NEW_node”之前的节点
常量、ARG\u聊天室组和常量、新节点和常量的值是多少?常量、ARG\u聊天室组和组和常量的值是多少。新节点和新组需要来自1505217176288\u myGroupName\u 1
,正确吗?不显示其用户ID
,它位于组和新组之间的数组中还有一个子节点丢失。常量的值是多少。ARG\u CHAT\u GROUP\u ROOMS
和常量。新节点
?常量。ARG\u CHAT\u GROUP\u ROOMS
=组和Constants.NEW\u节点
=newGroup
,因此您需要from\u uid
from1505217176288\u myGroupName\u 1
,正确吗?不显示它的userid
,它位于组之间的数组中和新组之间还有一个子节点丢失。@Laret它不是一个静态值15052169227329\u myGroupName\u Hell By Anne
它的时间戳与myGroupName的组合(是静态的)_输入的值user@VishalYadav我刚刚用第一个示例演示了代码中缺少的内容,即一个节点。当您只想获取1个newgroup对象的userid时就是这种情况know@VishalYadav对不起,我听不懂你的话。您是否将第二个节点(15052169227329_myGroupName_Hell,由Anne或其他类似的人编写)存储在某个位置?如果要访问此节点下的特定元素,则需要将其存储在某个位置,以便使用.child(节点名称)。您可以始终使用Test.child(Constants.ARG\u CHAT\u GROUP\u ROOMS)
,然后使用dataSnapshot.getChildren().iterator().next()对其进行迭代代码>但这不是您的解决方案problem@Laret它不是一个静态值15052169227329\u myGroupName\u Hell By Anne
其时间戳的组合\u myGroupName(是静态的)\u由user@VishalYadav我刚刚用第一个示例演示了代码中缺少的内容,即一个节点。当您只想获取1个newgroup对象的userid时就是这种情况know@VishalYadav对不起,我听不懂你的话。您是否将第二个节点(15052169227329_myGroupName_Hell,由Anne或其他类似的人编写)存储在某个位置?如果要访问此节点下的特定元素,则需要将其存储在某个位置,以便使用.child(节点名称)。您可以始终使用Test.child(Constants.ARG\u CHAT\u GROUP\u ROOMS)
,然后使用dataSnapshot.getChildren().iterator().next()对其进行迭代代码>但这不是您问题的解决方案谢谢您的回答,但它仍然给了我null
value not worksenderUid
的值是多少?tKyhXXAf6TQnQgKyAf23RJcwhsn1
,我想执行操作,如果该值存在于任何组中,则该消息将由组的用户接收,这就是为什么为空,因为我认为senderUid是1505217176288_myGroupName_1。保存此连接字符串的变量的名称是什么?1505217176288\u myGroupName\u 1
?1505217176288\u myGroupName\u 1
其时间戳\u myGroupName的组合(是静态的)_此值由用户输入谢谢您的回答,但它仍然给我null
value not worksenderUid
的值是多少?tKyhXXAf6TQnQgKyAf23RJcwhsn1
它是,我想执行操作,如果该值存在于任何组中,则该消息将由组的用户接收,这就是为什么为空,因为我认为senderUid是1505217176288_myGroupName_1。保存此连接字符串的变量的名称是什么?1505217176288\u myGroupName\u 1
?1505217176288\u myGroupName\u 1
其时间戳的组合\u myGroupName(是静态的)\u此值由用户输入
private void getMYuid() {
String senderUid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference mTest = FirebaseDatabase.getInstance().getReference();
mTest.child(Constants.ARG_CHAT_GROUP_ROOMS).child("15052169227329_myGroupName_Hell By Anne").child(Constants.NEW_NODE)
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (!dataSnapshot.exists()){
Toast.makeText(ActivityChatView.this, "not exist", Toast.LENGTH_SHORT).show();
Log.e("151","ACV"+dataSnapshot);
}
// You can cast this object later but it seems that that is a string and not an array
Object yourRequiredObject = dataSnapshot.child("usersIDS").getValue();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Log.e("139","ACV"+senderUid);
}