Firebase中的getKey方法不会返回生成的确切推送ID

时间:2019-07-03 20:13:41

标签: android firebase firebase-realtime-database

Description                             File        Line    
'Property': undeclared identifier       player.h    12  
'Property': undeclared identifier       player.h    15  
missing type specifier - int assumed    property.h  12  
missing type specifier - int assumed    property.h  14  
missing type specifier - int assumed    property.h  12  
missing type specifier - int assumed    property.h  14  
syntax : '>'                            player.h    12  
syntax : '>'                            player.h    15  
syntax : missing ';' before '*'         property.h  12  
syntax : missing ';' before '*'         property.h  14  
syntax : missing ';' before '*'         property.h  12  
syntax : missing ';' before '*'         property.h  14  
unexpected token(s) preceding ';'       property.h  12  
unexpected token(s) preceding ';'       property.h  14  
unexpected token(s) preceding ';'       property.h  12  
unexpected token(s) preceding ';'       property.h  14

当我使用此代码时,字符串x与实际的推送ID在末尾相差1个字母。这是故意的还是我使用的方法不正确?

1 个答案:

答案 0 :(得分:1)

您两次致电push(),这导致了两个不同的键。有几种方法可以将对象推入Firebase并获取密钥。

您可以先获取密钥,然后使用密钥获取并更新孩子。

String x = myRef.child("sfasf").push().getKey();
add = new Catcat(addCate,x);
myRef.child("sfasf").child(x).setValue(add);

或者您可以先按对象,然后检索键。

add = new Catcat(addCate,x);
DatabaseReference ref = myRef.child("sfasf").push(add)
String x = ref.getKey()