我需要從 Firebase 實時資料庫中檢索特定資訊以發送推送訊息,但不知道該怎么做,我需要從所有用戶那里獲取設備令牌的字串,因此嘗試呼叫用戶,應該呼叫用戶 ID (這部分是我迷路的地方,不知道如何獲得這條路徑),然后是設備令牌。
這就是我所擁有的:
UsersRef = FirebaseDatabase.getInstance().getReference().child("Users");
usersIDs = UsersRef.getKey().toString();
UsersRef.child(usersIDs).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NotNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
if (dataSnapshot.hasChild("device_token")) {
receiverUserDeviceToken = dataSnapshot.child("device_token").getValue().toString();
}
}
}
@Override
public void onCancelled(@NotNull DatabaseError error) {
}
});


uj5u.com熱心網友回復:
根據你最后的評論:
正確,我需要獲得兩個值。
請使用以下代碼行:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference users = rootRef.child("Users");
usersRef.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
@Override
public void onComplete(@NonNull Task<DataSnapshot> task) {
if (task.isSuccessful()) {
for (DataSnapshot userSnapshot : task.getResult().getChildren()) {
String deviceToken = userSnapshot.child("device_token").getValue(String.class);
Log.d("TAG", deviceToken);
}
} else {
Log.d("TAG", task.getException().getMessage()); //Don't ignore potential errors!
}
}
});
logcat 中的結果將是:
f4...XMY:APA...wr3
eff...8NT:APA...Bd7
請記住,為了能夠從 DataSnapshot 物件中獲取所有結果,您必須使用.getChildren().
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/349405.html
標籤:爪哇 安卓 火力基地 Firebase 实时数据库 谷歌云平台
